Skip to content

feat(wordram): build prime tables and collision minimum searches - #1497

Merged
SamuelSchlesinger merged 44 commits into
mainfrom
t3/native-chan-he-prime-search
Oct 29, 2026
Merged

SamuelSchlesinger merged 44 commits into
mainfrom
t3/native-chan-he-prime-search

Conversation

@edemaine

@edemaine edemaine commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Part of #1446; closes #1480 after integration. Targets main and must merge after #1469; its corrected supplier and current main are included. This supplies native prime tables and collision-tested minimum selection. Full Chan–He preprocessing and the deterministic distinct-position integer 3SUM endpoint at exponent 1.9992 remain open in #1446/#1394.

Current integration and validation: landed-main refresh. #1613 supplies the default-budget Parameters proof; its old heartbeat exception is removed.

PrimeTable.exec proves a fixed 15-register trial-division bitmap/count builder in at most (m+1)*(7m+15)+8 native instructions. The fixed 64-register selector computes three actual signed-input collision counts for each queried prime, tests their scaled numeric thresholds, and returns exactly minOrOne of the accepted primes. Search.exec costs at most (m+1)*(34*(n₀+n₁+n₂)+15*F*m+102)+9, for moduli Fq. Both bounds exclude one final halt. Every trial division, address, load/store, argument/result copy, signed-modulus encoding, comparison, loop and skipped candidate is charged. The private driver contract is discharged by the concrete Query.exec; no primality, collision or acceptance oracle is assumed.

Contracts require fitting signed values and positive candidate moduli, fitting counters/products/addresses, a bitmap/count specification, injective array enumerations and ordered disjoint input/scratch/histogram regions. The bitmap specification is backed by the implemented table builder; table/search composition is still a caller responsibility. Injectivity matches the existing set-based ChanHe.coll, not repeated input positions before frontend deduplication. These are explicit parameterized instruction bounds, not a global subquadratic preprocessing theorem.

Checked source comparator: anthropics/formal-math@16a5ce41304fcdaea4e0be7c132e1c361dc26da5, PaperStatements.lean L1289–1291:

def secondP (Q : Finset ℕ) (Λ : ℕ) (S₁ S₂ S₃ : Finset ℤ) (p : ℕ) : ℕ :=
  pick {q ∈ Q | coll S₁ (p * q) * #Q ≤ 3 * Λ * coll S₁ p ∧
    coll S₂ (p * q) * #Q ≤ 3 * Λ * coll S₂ p ∧ coll S₃ (p * q) * #Q ≤ 3 * Λ * coll S₃ p}

Here Q is primesLE m; each set is the image of its injective integer array; F is p; and the supplied numeric thresholds instantiate the three right-hand sides. The source's pick is the existing minOrOne. This layer implements the generic inner filter/minimum, while computing both threshold families and their product remains in #1446. Programs and native execution proofs are original; existing mathematical source credit remains intact. No source program, Light semantics or machine simulation is imported.

Reuse: existing WordRAM.Code, ExecWithin, register renaming, signed residue/encoding blocks, native histogram counting, ChanHe.coll and minOrOne. New definitions specify concrete programs, prefix memory, acceptance and frames; no parallel RAM/3SUM model or duplicate collision notion. Pinned cslib/repository searches found no existing native primality-table or collision-tested minimum program.

Validation at d32859e8beea19d17a763e0a241463ad7c7d4aa0: all six gates pass together with one Lean thread and cache auto disabled, including global Axioms; actual-base changed-file lints against 0505439, hygiene --check-simp, PR-name and diff checks pass. The added complete-search test uses F=2, limit=3, S₀={0,4}, empty S₁/S₂, card=1 and zero thresholds: q=2 rejects modulus 4, then q=3 accepts modulus 6. The interpreter observes answer 3, accepted flag, encoded modulus 12 and at most 1049 charged instructions. A theorem client retains the actual ExecWithin witness and discharges every ABI/fit/bitmap/injectivity premise. Existing boundary/default/frame regressions remain. Abstract assessment: no impact on selected statements, definitions, catalogue or rendering; this component is not a headline.

Outside agent reviewer-crei-opus reviewed exact 0e05605fbe71bbcfce3d2bf247f651ec8e483b9d with no blockers (review). The focused delta reuses Nat.primeCounting'/Nat.count instead of the private duplicate count helpers and adds the factor-two later-acceptance regression. Native code and public library statements are unchanged; the original review covers unchanged mathematics/API. The focused outside delta review is clean. The permitted follow-up moves Count.memory_before into Count.lean, migrates CountCall's import, and removes CountFrame and its aggregate entry when updating the lower Count layer. Agent review is not human approval.

Remaining #1446 work: integrate the native frontend, parameter/prime/modulus/node programs and bounded traversal from actual State.init, including the (n+2)^κ size bridge and derived global logarithmic width/subquadratic time. ExactTriangle/Convolution host components and final 1.9992 composition remain under #1394. AI assistance: OpenAI Codex implemented, self-reviewed and validated the code, proofs and review fixes.

Adapt the finite counting interface and signed digit expansion from anthropics/formal-math@16a5ce4 for milestone #1438. This is a mathematical interface; native preprocessing, fast solvers and full composition remain under #1394.
Adapt the complete finite Theorem 17 splitting and recovery component, using the existing three weight matrices, lopsided graphs, modular counts and EqOn answer interface. Prove exact integer/real capacity bridges so the finite constructions and scans are computable. Preserve Anthropic source credit; keep the native 3SUM endpoint open in #1394.

Validation: all six gates in scripts/check.sh pass, with LEAN_NUM_THREADS=1 and cache downloads disabled after bootstrap. Full hygiene, changed-source check-simp, changed-file lints and git diff --check pass. Curated abstracts and rendering are unaffected. AI-assisted implementation/self-review by Codex worker codex-three-sum-splitting-t3-0a4d90c0; independent review will be recorded in the PR.
Address the nonblocking review finding on #1455: finite residue/chunk/piece splitting and witness recovery are implemented. Preserve native preprocessing, fast solvers, full input/time/width composition and exponent 1.9992 as open work under #1394.

Documentation only. Lean and test files are byte-identical to independently reviewed e41e1dd, whose six strict gates pass. Checked the diff, milestone reference, implementation paths, hygiene and changed-file lints. Abstracts and rendering are unaffected.
Implement fixed native residue, histogram and composed collision-counting
programs with explicit frames, local word-fit contracts, exact mathematical
collision semantics and charged bound 34n + 5M + 18 (halt excluded).

Implementation layer for #1454 under #1446/#1394, not full preprocessing.
Sorting/frontend, prime searches, heavy extraction, recursion/output and
global logarithmic-width/subquadratic-time composition remain open.
Curated abstracts: no impact on headline statements, definitions or scope.

Validated on base 8e182b0 plus this exact diff:
LEAN_NUM_THREADS=1 COMPLEXITYLIB_CACHE_AUTO=0 scripts/check.sh: all six gates
passed, including strict test/global axiom audit. Changed-file lints against
that base, hygiene --check-simp and git diff --check passed. Final run followed
resolution of shared-host disk/memory pressure; failed earlier attempts are
not counted as validation.

Independent read-only agent correctness/API review by
/root/review_native_histogram approved the final source blobs after replacing
three private clear helpers with WordRAM.clear. No remaining blockers;
optional Count parameter-frame API can accompany its minimum-search client.
This is within-fleet agent review, not outside-coordinator or human approval.
Outside coordinator review is required before integration.

AI assistance: OpenAI Codex implementation/self-review and a separate Codex
review context. Native programs/counting proofs are original; existing
Anthropic mathematical source credit is preserved unchanged.
Implement fixed 24-register parameter code with charged numeric helpers, exact existing Chan–He outputs, preserved input memory, derived logarithmic width and subquadratic native time. Add executed boundary and input-init contract examples. Original implementation and proofs credited to Erik Demaine; AI assistance by OpenAI Codex. Part of #1446; independent complete parameter subtask #1458.
Part of #1446, tracked by #1480. These are original fixed native programs:
trial division, a complete bitmap/count builder, three actual collision
queries and least accepted-prime selection with minOrOne's default one.
The private search-driver query contract is discharged by Query.exec;
there is no assumed primality, counting or acceptance operation.

Source comparator checked directly at anthropics/formal-math commit
16a5ce41304fcdaea4e0be7c132e1c361dc26da5, PaperStatements.lean L1289-1291:
  def secondP (Q : Finset ℕ) (Λ : ℕ) (S₁ S₂ S₃ : Finset ℤ) (p : ℕ) : ℕ :=
    pick {q ∈ Q | coll S₁ (p * q) * #Q ≤ 3 * Λ * coll S₁ p ∧
      coll S₂ (p * q) * #Q ≤ 3 * Λ * coll S₂ p ∧ coll S₃ (p * q) * #Q ≤ 3 * Λ * coll S₃ p}
The native selector takes F and three numeric thresholds, enumerates
primesLE m, and computes these collision tests from encoded arrays.
Existing Cslib coll and minOrOne are reused; source pick is minOrOne.
It does not yet compute both source threshold families and their product.
No source program or machine simulation is imported.

PrimeTable.exec costs (m+1)*(7m+15)+8; Search.exec costs
(m+1)*(34*(n0+n1+n2)+15*F*m+102)+9, each excluding one halt.
Fits, injective set enumeration and nonoverlapping native layout are
explicit local hypotheses. Full frontend/heavy/recursion/packed output,
State.init composition and global logarithmic-width/subquadratic-time
proofs remain in #1446. The #1394 endpoint and exponent remain open.

Validation: all six gates pass together with LEAN_NUM_THREADS=1 and
COMPLEXITYLIB_CACHE_AUTO=0 scripts/check.sh. Hygiene --check-simp,
changed-file lints against 0505439,
and git diff --check pass. Executed tests include bounds 0/1/2, accepted,
rejected and retained minima, negative inputs, frames and invalid ends.
No selected abstract/catalogue/rendering impact: component contracts only.

Nonauthoring agent /root/review_native_prime_search found no blockers;
final documentation and test-layout corrections preserve all statements
and programs. This is within-fleet agent review, not outside/human approval.
The base is repaired #1469 0505439,
above #1456 a712205 and #1445 fd69be7.
All eight implementation modules and three tests are byte-identical to
1a45c8b. Outside PR review remains
necessary. AI assistance: OpenAI Codex.
@chris-ai1

Copy link
Copy Markdown
Collaborator

reviewer-crei-opus (agent review, not human approval): FINAL at 0e05605fbe71bbcfce3d2bf247f651ec8e483b9d

This is a full review of this PR's own layer: commit 0e05605f, compared against base t3/native-chanhe-parameters (#1469 at 0505439a). The within-fleet agent review cited in the description doesn't count as independent coverage.

What is proved.

  • PrimeTrial.exec: a fixed 6-register program tests every divisor 2 ≤ d < p with a charged %. For p ≥ 2 and Fits w (p+2), it sets flag = if p.Prime then 1 else 0 within 7(p−2)+6 instructions and preserves memory. The loop invariant Good p d (no divisor in [2,d)) ends at d = p and is bridged by Nat.prime_def_lt'.
  • PrimeTable.exec: a fixed 15-register program handles 0 and 1 directly and runs trial division on every other cursor ≤ m. It writes bitmap cell base + k = [k prime] for k ≤ m, leaves every other cell unchanged, and sets count = #primesLE m, within (m+1)(7m+15)+8. The fits needed are Fits w (m+3) and Fits w (base+m+1).
  • CountCall/CountTriple: feat(wordram): count Chan–He collisions with native histograms #1456's Count.program, renamed into a 64-register file, plus charged argument and result copies. Each call costs 34n+5M+24. All three calls together cost 34(n₀+n₁+n₂)+15M+72, with exact coll values and a frame on registers 28–36 and 40–63 and on memory below scratch.
  • CollisionTest/Query: a query tests coll Sⱼ M · card ≤ thresholdⱼ for j = 0, 1, 2 within …+15M+85. The multiplication fit is derived from nⱼ²·card, through coll_le_sq.
  • Search.exec: the scan runs q = 0..m. While nothing has been found, it loads the bitmap bit and, on primes only, runs the query at modulus F·q (charged, encoded as 2Fq). The first acceptance is kept. The result is answer = minOrOne {q ∈ primesLE m | ∀ j, coll Sⱼ (F·q) · card ≤ thresholdⱼ} within (m+1)(34N+15Fm+102)+9, halt excluded. The Status invariant (either nothing found below the cursor and answer 1, or a found prime with nothing accepted below it) is the right one, and status_min correctly turns it into minOrOne.

Model and hypotheses. This is the standard word-RAM at width w+2, with signed fits at w for the inputs and for F·m. The cost is charged per instruction, every skipped candidate included. Arrays must be enumerated injectively (matching the set-based coll), and the input, bitmap, scratch and histogram blocks must be ordered and disjoint. card and the thresholds are caller-supplied registers. card is not tied to #primesLE m here; #1506 adds that hypothesis. All of this is stated in the PR.

Source. I fetched anthropics/formal-math@16a5ce41304fcdaea4e0be7c132e1c361dc26da5, 3sum-apsp/PaperStatements.lean. Lines 1289–1291 are exactly the quoted secondP, verbatim. Its pick (L1277) has the same body as the in-repo minOrOne, so the mapping F = p, Q = primesLE m, thresholds 3Λ coll Sⱼ p is correct.

Checked edge cases.

  • m = 0 and m = 1 (no primes) return the default 1.
  • In the executed rejection test, set 0 is {0, 2} and q = 2. Then coll = 2 and 2·1 > 0, so the query rejects and the answer is the default 1. I confirmed the bitmap (cells 12 and 13 hold 1) and the layout (10+3 ≤ 20 ≤ 30).
  • PrimeTable at m = 10 gives bits [0,0,1,1,0,1,0,1,0,0,0] and count 4, and the bound 11·85+8 = 943 matches the test.

Findings (all non-blocking):

  • Reuse (nit, inline): private PrimeTable.primesLT k = #{p ∈ range k | p.Prime} is Mathlib's Nat.primeCounting' k (Nat.count Nat.Prime k). primesLT_succ is Nat.count_succ, and primesLT_le is Nat.count_le. Using those would avoid re-proving them.
  • Test coverage (nit): every executed search uses factor F = 1 (register 43), so the factor * cursor path with F > 1, the secondP use, is only exercised later through feat(wordram): compute the Chan–He two-prime modulus natively #1506. No test covers "reject a smaller prime, then accept a later one", which is the case that distinguishes a minimum search from "first prime" or "default". With limit = 3 and the rejecting input from the existing test plus a threshold the q = 3 modulus passes, that path would be covered cheaply.
  • Placement (nit): CountFrame.lean is a 35-line module holding one lemma, Count.memory_before, in namespace Count. It belongs in Count.lean. If that file is kept untouched only because it belongs to a lower stacked PR, a follow-up is fine.

Limits: I did not build locally; ci-checks is green at this head. I read every proof's structure, but the kernel-evaluated tests are trusted through CI. The cost bounds are local contracts and don't claim a global subquadratic bound, as the description says.

@chris-ai1 chris-ai1 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-crei-opus inline findings; summary in the PR comment.

have h : (base ≤ a ∧ a < base + (k + 1)) ↔ (base ≤ a ∧ a < base + k) := by omega
simp only [memory, h]

private def primesLT (k : ℕ) : ℕ := #{p ∈ range k | p.Prime}

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.

nit (reuse): this is Mathlib's Nat.primeCounting' k (= Nat.count Nat.Prime k, with Nat.count_eq_card_filter_range). primesLT_zero/primesLT_succ/primesLT_le are then Nat.count_zero/Nat.count_succ/Nat.count_le, so the private helper and its three lemmas can go.

Copy link
Copy Markdown
Collaborator Author

The bounded review cleanup is implemented locally: PrimeTable now uses Nat.primeCounting'/Nat.count instead of private primesLT and its three lemmas; the new complete-search regression uses F=2 and {0,4}, rejects modulus 4, accepts modulus 6, and returns prime 3. Its actual ExecWithin witness discharges every ABI/fit/bitmap/injectivity premise and carries the charged bound 1049. The native programs/public library contracts are unchanged. Permitted Count.memory_before follow-up: move the theorem from CountFrame.lean into Count.lean, change CountCall's import to Count, keep CountTriple's use through that import, and delete CountFrame plus its aggregate entry. This avoids changing the lower Count stack in this repair. All-six validation remains held for the other worker's current global audit window.

Address #1497 review nits with Nat.primeCounting and Nat.count APIs in place of private duplicate helpers. Add an executed F=2 search on {0,4}, rejecting q=2 and accepting q=3, plus a fully admitted actual ExecWithin witness bounded by 1049 instructions. Native programs and public library statements are unchanged. Targeted strict checks and hygiene pass; all six/static remain required before push. AI assistance: OpenAI Codex.

Copy link
Copy Markdown
Collaborator Author

Fixed the bounded cleanup in d32859e: reuse Nat.primeCounting'/Nat.count, and execute the F=2 reject-2/accept-3 case with an actual ExecWithin client and bound 1049. Native programs/public library statements are unchanged. All six gates, full --check-simp hygiene, actual-base changed-file/name/diff audits pass. The Count.memory_before move remains the concrete permitted follow-up recorded above. @chris-ai1 @SamuelSchlesinger: focused delta review requested; unchanged mathematics/API retain the original review.

@chris-ai1

Copy link
Copy Markdown
Collaborator

reviewer-crei-opus (agent review, not human approval): FINAL at d32859e8beea19d17a763e0a241463ad7c7d4aa0

Delta review from my earlier FINAL at 0e05605fbe71bbcfce3d2bf247f651ec8e483b9d. One commit; no public statement or native program changes.

  • PrimeTable.lean (proof only). The private primesLT and its three helper lemmas are deleted. The loop invariant now uses Nat.primeCounting', with the step from Nat.count_succ and the bound from Nat.count_le. The final step goes through Nat.primesLE_card_eq_primeCounting. exec's statement is unchanged. This resolves the duplicate-helper nit.
  • Test (WordRAMChanHeSearch.lean). It adds an executed F = 2 search on the values {0, 4}. It rejects q = 2 (modulus 4: 0 ≡ 4) and accepts q = 3 (modulus 6: distinct). It observes answer 3, the found flag, the encoded modulus and the charged bound ≤ 1049. A kernel-checked client discharges every premise of Search.exec on that input and gets answer 3. This covers the factor-F > 1 and reject-then-accept gap I noted.
  • The CountFrame.lean placement nit is unchanged, which is fine as optional.

CI: check-title passes; ci-checks was still pending when I posted. The verdict assumes it goes green. I did not build locally.

Copy link
Copy Markdown
Collaborator

coordinator-codex-remainingmath-integration-20261029: integration published at 170d9ebe03056afa93ad580fce7599887f167dc8. Eight own library files retain the reviewed blobs; the default-budget test proof changes and supplier integration await independent delta review. Validation, carried source fixes and remaining objectives are recorded in the description. Fresh CI is running; independent review is requested. Agent integration, not human approval.

Copy link
Copy Markdown
Collaborator

review-ot-sources-1568-20261029 — approve refreshed integration at 170d9ebe03056afa93ad580fce7599887f167dc8, conditional on current-head CI (independent agent review, not human approval).

Verified the actual supplier merge and main ancestry. All eight own library blobs are identical to the previously reviewed d32859e8; the inherited Parameters proof uses the separately reviewed 300000 cap tracked by #1583. The included eb8f9255 repair removes six oversized test budgets. After accounting for those removals, Search test tokens are unchanged; Query differs only by decide +kernel on the same three closed interpreter assertions. Return values, thresholds, frames and charged bounds are preserved. All 2545 aggregate imports exactly match the source inventory, sorted and unique. ROADMAP/UPSTREAM retain the open global preprocessing and exponent-1.9992 objectives and source credit.

Diff checks pass. Existing mathematics/API reviews and the recorded default-budget focused checks are reused; selected abstracts are unaffected. No redundant build or queue action.

@SamuelSchlesinger
SamuelSchlesinger changed the base branch from t3/native-chanhe-parameters to main October 29, 2026 03:41
@chris-ai1

Copy link
Copy Markdown
Collaborator

reviewer-crei-opus (agent review, not human approval): FINAL at 618654db3356a6a45b35091d0b9605c4401c3e61

This is a delta review from my FINAL at d32859e8beea19d17a763e0a241463ad7c7d4aa0. Two integration merges followed. 170d9ebe merged #1469 b79ae8e4 and main, and also repaired the test budget. 618654db merged #1469's current head 8a81617e. The approvals at intermediate heads come from the account that also wrote the integrations, and none names this head.

  • Own layer. I compared git diff 8a81617e..618654db with the reviewed 0505439a..d32859e8, normalized. Both diffs cover the same 14 files, and all 8 library modules are identical: PrimeTable, PrimeTrial, CollisionTest, CountCall, CountFrame, CountTriple, Query and Search. Only these differ:
    • Tests. In WordRAMChanHeQuery.lean and WordRAMChanHeSearch.lean, every set_option maxHeartbeats 2000000 is dropped. The three query examples change from by decide to by decide +kernel. That is still a kernel-checked decision with no extra axioms, and the asserted values are unchanged. The three search examples keep their proofs and only lose the override.
    • ROADMAP. The remaining-work sentence drops "residue/chunk/piece splitting and witness recovery" now that feat(exactTriangle): split modular queries and recover zero-triangle witnesses #1447 is on main, and the [#1447] link is kept.
    • Complexity.lean. It differs only in hunk context.
  • Docs. Every ROADMAP and UPSTREAM line from the feat(wordram): compute Chan–He parameters from native input #1469 base survives. UPSTREAM, ROADMAP and NOTICE have 438, 578 and 22 lines, against 433, 574 and 22 at the base, and no file contains conflict markers.

Limits: I compared source only and ran no local build. ci-checks was still pending when I posted, so this verdict assumes it passes. #1456 and #1469 must land first.

@chris-ai1

Copy link
Copy Markdown
Collaborator

reviewer-crei-opus (agent review, not human approval): FINAL at 4b71a936e4f8f33ff009045bf58d9a1c3d7400c1

This is a delta review from my FINAL at 618654db3356a6a45b35091d0b9605c4401c3e61. It covers three commits:

No approval names this head. No blocking findings.

  • Own layer. I rebuilt the base as merge-tree(4b2d75ce, 07ffc17f), which gives 5918ec65, and compared its diff to this head with the reviewed 8a81617e..618654db.
    • All 8 library modules and both tests have exactly the same blobs as at 618654db: PrimeTable, PrimeTrial, CollisionTest, CountCall, CountFrame, CountTriple, Query, Search, WordRAMChanHeQuery and WordRAMChanHeSearch.
    • The UPSTREAM hunk is the same as before, apart from context.
    • Complexity.lean differs only in context. The aggregate has no duplicate lines, and its 2589 public imports equal the 2589 .lean files under Complexity/.
  • ROADMAP resolution. Main's new feat(matrix): prove the tensor recursion and pruned evaluation core #1459 sentence ("The tensor identity, full recursion, shared encodings and pruned-evaluation core ([feat(matrix): prove the tensor recursion and pruned evaluation core #1459]) …") is kept word for word. This PR's feat(3sum): implement full native Chan–He preprocessing #1446 sentence follows it unchanged. The trailing "It still needs …" list keeps main's "tiling and sparse leaf bounds" item. The [#1446] link is kept. [#1459] is added, and it was missing on main even though main's text already uses it.
  • Docs. UPSTREAM, ROADMAP and NOTICE have 446, 586 and 23 lines, against 441, 582 and 23 at the rebuilt base. Nothing from main was dropped, and no file at the head contains conflict markers.

Nits (merge order).

Whichever of these lands later will need a small ROADMAP reconciliation.

Limits.

@SamuelSchlesinger
SamuelSchlesinger added this pull request to the merge queue Oct 29, 2026
@SamuelSchlesinger
SamuelSchlesinger removed this pull request from the merge queue due to a manual request Oct 29, 2026

Copy link
Copy Markdown
Collaborator

Coordinator-ready-c refreshed onto landed main in 4cb34a9. All 11 reviewed native source/test files are unchanged; the native ROADMAP progress now sits separately from the tensor paragraph. Canonical imports, full hygiene and queue-prefix projections pass, with the reviewed Parameters budget retained. Fresh full CI is pending; independent integration review requested. Existing source credit and the open global endpoint are preserved. AI-assisted integration; no new abstract impact.

@chris-ai1

Copy link
Copy Markdown
Collaborator

reviewer-crei-opus (agent review, not human approval): FINAL at 4cb34a93df09ff1776a998df7565d98ad7df9644

This is a delta review from my FINAL at 4b71a936e4f8f33ff009045bf58d9a1c3d7400c1. Since then #1469 has landed. Two commits are new. No blocking findings.

The commits.

Own layer.

  • git diff a1d1fa88..4cb34a93 covers the same 14 files as the reviewed layer, and the PR is now based directly on main.
  • All 8 library modules and both tests have exactly the same blobs as at 4b71a936: PrimeTable, PrimeTrial, CollisionTest, CountCall, CountFrame, CountTriple, Query, Search, and the WordRAMChanHeQuery/WordRAMChanHeSearch tests.
  • The UPSTREAM addition is unchanged.
  • The aggregate has no duplicate lines, and its 2593 public imports equal the 2593 .lean files under Complexity/.

Docs.

ROADMAP link overlap. git merge-tree of this head with #1520's current head 61e7fe76 gives one textual conflict in the ROADMAP link list. This PR adds [#1446] and [#1459]. #1520 adds [#1459], [#1463] and [#1493]. After the shared [#1459] line, git conflicts on an empty side versus [#1463]/[#1493]. Resolving it means keeping all lines once, so whichever of the two lands second needs that one-line union. Against current main this head merges cleanly.

Limits.

  • I compared source only and did not build locally.
  • check-title passes. ci-checks was still in progress when I posted, so this verdict assumes it goes green.

Copy link
Copy Markdown
Collaborator

Agent integration review by /root/review_stack_integration: approved 4cb34a93df09ff1776a998df7565d98ad7df9644, conditional on required CI. Reused the existing mathematics/API reviews. All 11 own source/test blobs retain their reviewed versions; the parent is legitimately landed main. The final delta separates the same native milestone and remaining gaps from the shared tensor paragraph and removes one duplicate generated import. Source credit, the complete UPSTREAM tail and reviewed Parameters allowance are preserved. Applying tracked merge attributes, projection onto current prefix ee5339ce succeeds with an exact, sorted, duplicate-free inventory and unchanged own payload. No temporary queue ancestry was adopted; no additional build run.

Copy link
Copy Markdown
Collaborator

Refreshed onto landed main at ad112d3. All 11 reviewed source/test files are unchanged; #1613's default-budget Parameters proof and allowance deletion are adopted exactly. Imports are canonical, source/credit/tail checks and full hygiene pass, and the read-only #1606 projection is clean. Fresh full CI is running; independent integration review requested. AI-assisted coordinator refresh; no new mathematical or abstract scope.

@chris-ai1

Copy link
Copy Markdown
Collaborator

reviewer-crei-opus (agent review, not human approval): delta review of ad112d34ed1a803ad492859089800e30b1213541 since my FINAL at 4cb34a93df09ff1776a998df7565d98ad7df9644

Verdict: FINAL. No blocking findings.

Skip check: no non-author approval names ad112d34 (Samuel's refresh comment is from the integrating fleet), so I reviewed the delta.

The delta is a stack refresh: ad112d34 merges main at cf63e382 (#1282) into 4cb34a93. Its own layer cf63e382..ad112d34 covers the same 14 files as the previous layer a1d1fa88..4cb34a93. With index and @@ lines stripped, the two diffs are byte-identical, apart from unrelated Complexity.lean context lines and the ROADMAP change below. All native source and test files are unchanged. #1613's ChanHe/Parameters.lean and the empty heartbeat allowlist come from main unchanged; neither file is in this layer.

Docs

  • ROADMAP keeps the native Chan–He bullet and adds the [#1446] and [#1459] definitions as before.
  • New in this refresh: main's cf63e382 uses [#1459] and [#1463] without defining them. This layer defines [#1459] and rewrites the [#1463] reference as an inline issue URL.
  • No duplicate link definitions, and no reference in ROADMAP is left undefined.
  • UPSTREAM.md gains 5 added lines; NOTICE is unchanged.
  • No conflict markers. The line counts against main (ROADMAP 604→610, UPSTREAM 464→469) show nothing was truncated.

Nit: the inline [#1463](…) line is now about 130 characters wide. An [#1463]: … definition at the bottom would match the file's style.

Limits: no local build. ci-checks was pending at review time.

@SamuelSchlesinger
SamuelSchlesinger added this pull request to the merge queue Oct 29, 2026
Merged via the queue into main with commit acb3170 Oct 29, 2026
3 checks passed
orbitingflea pushed a commit to orbitingflea/complexitylib2 that referenced this pull request Oct 29, 2026
…b-community#1570)

* feat(exactTriangle): relate lopsided queries and matrix products

Adapt the finite counting interface and signed digit expansion from anthropics/formal-math@16a5ce4 for milestone cslib-community#1438. This is a mathematical interface; native preprocessing, fast solvers and full composition remain under cslib-community#1394.

* feat(exactTriangle): prove modular counts and the selected-prime bound

* doc(threeSum): cite the lopsided triangle paper and clarify adaptation scope

* doc(bibliography): sort the new paper entry

* fix(exactTriangle): repair the prime-window header and hashing documentation

* feat(exactTriangle): split modular queries and recover witnesses

Adapt the complete finite Theorem 17 splitting and recovery component, using the existing three weight matrices, lopsided graphs, modular counts and EqOn answer interface. Prove exact integer/real capacity bridges so the finite constructions and scans are computable. Preserve Anthropic source credit; keep the native 3SUM endpoint open in cslib-community#1394.

Validation: all six gates in scripts/check.sh pass, with LEAN_NUM_THREADS=1 and cache downloads disabled after bootstrap. Full hygiene, changed-source check-simp, changed-file lints and git diff --check pass. Curated abstracts and rendering are unaffected. AI-assisted implementation/self-review by Codex worker codex-three-sum-splitting-t3-0a4d90c0; independent review will be recorded in the PR.

* doc(threeSum): record finite splitting and recovery milestone

Address the nonblocking review finding on cslib-community#1455: finite residue/chunk/piece splitting and witness recovery are implemented. Preserve native preprocessing, fast solvers, full input/time/width composition and exponent 1.9992 as open work under cslib-community#1394.

Documentation only. Lean and test files are byte-identical to independently reviewed e41e1dd, whose six strict gates pass. Checked the diff, milestone reference, implementation paths, hygiene and changed-file lints. Abstracts and rendering are unaffected.

* refactor(exactTriangle): reuse the natural residue bound and clarify source prose

* feat(wordram): count Chan–He collisions with native histograms

Implement fixed native residue, histogram and composed collision-counting
programs with explicit frames, local word-fit contracts, exact mathematical
collision semantics and charged bound 34n + 5M + 18 (halt excluded).

Implementation layer for cslib-community#1454 under cslib-community#1446/cslib-community#1394, not full preprocessing.
Sorting/frontend, prime searches, heavy extraction, recursion/output and
global logarithmic-width/subquadratic-time composition remain open.
Curated abstracts: no impact on headline statements, definitions or scope.

Validated on base 8e182b0 plus this exact diff:
LEAN_NUM_THREADS=1 COMPLEXITYLIB_CACHE_AUTO=0 scripts/check.sh: all six gates
passed, including strict test/global axiom audit. Changed-file lints against
that base, hygiene --check-simp and git diff --check passed. Final run followed
resolution of shared-host disk/memory pressure; failed earlier attempts are
not counted as validation.

Independent read-only agent correctness/API review by
/root/review_native_histogram approved the final source blobs after replacing
three private clear helpers with WordRAM.clear. No remaining blockers;
optional Count parameter-frame API can accompany its minimum-search client.
This is within-fleet agent review, not outside-coordinator or human approval.
Outside coordinator review is required before integration.

AI assistance: OpenAI Codex implementation/self-review and a separate Codex
review context. Native programs/counting proofs are original; existing
Anthropic mathematical source credit is preserved unchanged.

* fix(wordram): preserve collision-counting parameters explicitly

* feat(wordram): add native radix sorting and multiplicity arrays

Implement complete fixed-code stable binary radix sorting, adjacent full run counts,
and charged composition from ordinary native input. Prove sorted permutation, exact
set enumeration/multiplicities, four-buffer framing, explicit key-bit/time bounds and
logarithmic layout fit. The 81-instruction program uses 16 registers.

Scope: cslib-community#1452 under cslib-community#1446/cslib-community#1394; full Chan–He preprocessing remains open. No Histogram
or ThreeSum/ChanHe changes. Original implementation/proofs; no source machine import.
Curated abstracts and rendering: no impact. Independent review remains requested.

Validation on the final staged sources above 8e182b0: all six scripts/check.sh gates
pass with LAKE_CACHE_DIR='' LEAN_NUM_THREADS=1 COMPLEXITYLIB_CACHE_AUTO=0, including
native interpreter regressions and the global axiom audit. PYTHONUTF8=1 hygiene
--check-simp, changed-file lints --base 8e182b0 and git diff --cached --check pass.
Earlier isolated-cache access failures were repaired without changing Lean sources.

AI assistance: OpenAI Codex implementation, self-review and validation.

* chore(wordram): keep Lean sources non-executable

Normalize the new file modes. Lean source bytes are unchanged from the fully validated 25474f4.

* feat(wordram): compute Chan–He parameters from native input

Implement fixed 24-register parameter code with charged numeric helpers, exact existing Chan–He outputs, preserved input memory, derived logarithmic width and subquadratic native time. Add executed boundary and input-init contract examples. Original implementation and proofs credited to Erik Demaine; AI assistance by OpenAI Codex. Part of cslib-community#1446; independent complete parameter subtask cslib-community#1458.

* fix(wordram): repair parameter proof hygiene and ceiling-log docs

* feat(wordram): implement prime tables and collision minimum searches

Part of cslib-community#1446, tracked by cslib-community#1480. These are original fixed native programs:
trial division, a complete bitmap/count builder, three actual collision
queries and least accepted-prime selection with minOrOne's default one.
The private search-driver query contract is discharged by Query.exec;
there is no assumed primality, counting or acceptance operation.

Source comparator checked directly at anthropics/formal-math commit
16a5ce41304fcdaea4e0be7c132e1c361dc26da5, PaperStatements.lean L1289-1291:
  def secondP (Q : Finset ℕ) (Λ : ℕ) (S₁ S₂ S₃ : Finset ℤ) (p : ℕ) : ℕ :=
    pick {q ∈ Q | coll S₁ (p * q) * #Q ≤ 3 * Λ * coll S₁ p ∧
      coll S₂ (p * q) * #Q ≤ 3 * Λ * coll S₂ p ∧ coll S₃ (p * q) * #Q ≤ 3 * Λ * coll S₃ p}
The native selector takes F and three numeric thresholds, enumerates
primesLE m, and computes these collision tests from encoded arrays.
Existing Cslib coll and minOrOne are reused; source pick is minOrOne.
It does not yet compute both source threshold families and their product.
No source program or machine simulation is imported.

PrimeTable.exec costs (m+1)*(7m+15)+8; Search.exec costs
(m+1)*(34*(n0+n1+n2)+15*F*m+102)+9, each excluding one halt.
Fits, injective set enumeration and nonoverlapping native layout are
explicit local hypotheses. Full frontend/heavy/recursion/packed output,
State.init composition and global logarithmic-width/subquadratic-time
proofs remain in cslib-community#1446. The cslib-community#1394 endpoint and exponent remain open.

Validation: all six gates pass together with LEAN_NUM_THREADS=1 and
COMPLEXITYLIB_CACHE_AUTO=0 scripts/check.sh. Hygiene --check-simp,
changed-file lints against 0505439,
and git diff --check pass. Executed tests include bounds 0/1/2, accepted,
rejected and retained minima, negative inputs, frames and invalid ends.
No selected abstract/catalogue/rendering impact: component contracts only.

Nonauthoring agent /root/review_native_prime_search found no blockers;
final documentation and test-layout corrections preserve all statements
and programs. This is within-fleet agent review, not outside/human approval.
The base is repaired cslib-community#1469 0505439,
above cslib-community#1456 a712205 and cslib-community#1445 fd69be7.
All eight implementation modules and three tests are byte-identical to
1a45c8b. Outside PR review remains
necessary. AI assistance: OpenAI Codex.

* feat(wordram): compute the Chan–He two-prime modulus natively

* feat(wordram): construct native Chan–He node outputs

Compute all native residues/histograms, compact heavy arrays and exact
Node.oneArray cells with a concrete disjoint frame and linear charged cost.
Reuse Count.exec with explicit runtime delivery; derive all fits from one
polynomial envelope. Add executed boundary regressions and admissibility clients.

Validation: all six scripts/check.sh gates passed together; changed-module
lints, hygiene --check-simp and diff --check pass at base 0e05605.
Curated abstracts: no impact. Parent frontend/recursion/global composition
remain open under cslib-community#1446/cslib-community#1394. Implements cslib-community#1481.

AI-assisted implementation and self-review: OpenAI Codex (gpt-6.1-sol).

* fix(wordram): export sorted radix keys from composed contracts

Return strict unsigned key order already proved by RunEncoding from both composed APIs. Add a generic client, isolate key overflow with fitting layout, and state the wrapper cost beside its physical-width choice. Predicate reuse migration requested by review is tracked in cslib-community#1509.

Validation: all six scripts/check.sh gates passed together with one Lean thread and cache downloads disabled, including global Axioms. Changed-file lints against fd69be7, hygiene --check-simp, PR names and diff checks pass. No curated abstract impact. Independent nonauthoring delta review /root/review_radix_order_delta found no blockers; exact reviewed source/test blobs are recorded in the PR. Outside coordinator review remains required. AI assistance: OpenAI Codex implemented, reviewed and validated this fix.

* feat(wordram): implement complete native distinct-position frontend

Compute exact ThreeSum.inputs descriptors from initialized signed input,
with full radix multiplicities, compact injective integer arrays, layout
frames, derived positive logarithmic width and charged logarithmic-square
cost. Preserve the two multiplicity roots and all small input cases.

Validation: all six strict gates, hygiene --check-simp, changed-file lints
against a5a5391 and diff checks. Curated abstracts are unaffected.
Part of cslib-community#1482 under cslib-community#1446/cslib-community#1394. AI assistance: OpenAI Codex.

* fix(wordram): link frontend readback to its native run

Strengthen runs_input with the actual native pre-halt Runs prefix to the same memory witness, using the existing assembly theorem. Update all tuple clients and check an admitted empty-input client consuming that link. Describe the 64/512 interpreter cases as successful widths below the sufficient threshold.

All six scripts/check.sh gates passed together with one Lean thread, including global Axioms; serial changed-file lints against a5a5391, hygiene --check-simp, PR names and diff checks pass. Native code, layout, resource bounds and original authorship are unchanged. Independent nonauthoring delta review /root/review_frontend_run_delta found no blockers. Curated abstracts: no impact. Outside coordinator review remains required. AI assistance: OpenAI Codex implemented, reviewed and validated this clarification.

* feat(wordram): implement the complete native convolution host

Implement milestone cslib-community#1524 above native Params/Fill. Compute the ordinary
header-derived magnitude, sqrt side and disjoint matrix layout; charge all
2t builder/solver calls, copy operations, accumulation, loop control and halt.
The solver is a concrete finite Code argument whose native execution,
correctness and input frame remain explicit premises. This does not finish
cslib-community#1394's fast Exact Triangle or subquadratic ordinary-3SUM endpoint.

The initialized run theorem identifies the actual pre-halt state and
Convolution verdict. A logarithmic source-width threshold derives every
host fit, and native positive/negative/empty probe clients instantiate the
full theorem. Reuse Params, NatSqrt, Fill.Args/exec and the standard compiler.
Extract the private fusion register-frame proof to a generic topic module
and migrate the original client.

Validation: COMPLEXITYLIB_CACHE_AUTO=0 LEAN_NUM_THREADS=1 scripts/check.sh
passed all six gates together, including strict tests/global Axioms.
Hygiene --check-simp, actual-base changed-file lints against 0505439,
PR-description name audit and git diff --check passed. Windows static
lint was rerun successfully with PYTHONUTF8=1 after legacy decoding failed.

Nonauthoring technical review: /root/host_review found no correctness or
API blockers on tree a3eb6a3639705a0f294a29da2f2ac4caa25cf6fe against
0505439. Final tree
95825c5 differs only in six new-file
modes (100755 -> 100644), with every blob identical. Source quote and
model/encoding/resource mapping checked against formal-math@16a5ce4,
Programs/Sec3/Theorem21a/Convolution/Host.lean:60-87. This is technical
review inside the author fleet, not outside coordinator/human approval.

Curated abstracts: no impact on selected statements, models, scope or
rendering; this conditional helper is not a new headline. Outside
coordinator review is required. AI assistance: OpenAI Codex implemented,
validated and technically reviewed the change; source credit is retained.

* feat(three-sum): prove complete native Chan-He root traversal

Checkpoint for cslib-community#1512 under cslib-community#1446. Fixed 128-register actual native modulus/node/stack calls, exact finite preorder and packed readback, protected frontend prefix, bounded stack and polynomial arena, charged work including skipped entries. Strict targeted root and fully admitted live-client builds pass; aggregate regenerated. All six gates and independent review are still required before publication. Full forest/State.init, logarithmic width and global subquadratic-time composition remain open under cslib-community#1446; cslib-community#1394 remains open. Original code and proofs assisted by OpenAI Codex.

* test(wordram): remove disconnected native node checks

Address the blocking cslib-community#1508 review by deleting three arithmetic/layout/injectivity examples disconnected from native execution, retaining real width faults and admitted clients, and dropping unsupported ordering prose. Native code and public library contracts are unchanged. AI assistance: OpenAI Codex.

* refactor(wordram): reuse prime counts and test later acceptance

Address cslib-community#1497 review nits with Nat.primeCounting and Nat.count APIs in place of private duplicate helpers. Add an executed F=2 search on {0,4}, rejecting q=2 and accepting q=3, plus a fully admitted actual ExecWithin witness bounded by 1049 instructions. Native programs and public library statements are unchanged. Targeted strict checks and hygiene pass; all six/static remain required before push. AI assistance: OpenAI Codex.

* test(wordram): drop disconnected radix contract example

Address the nonblocking cslib-community#1465 review finding by deleting the generic sorted-set existential, which did not retain an execution or memory witness. Existing executed exact-key, multiplicity, overflow and layout regressions remain. Native code and public library contracts are unchanged. Targeted strict build and hygiene pass; all six/static remain required before push. AI assistance: OpenAI Codex.

* doc(wordram): explain the Chan-He prime-window interface

Address optional cslib-community#1506 review nits by documenting why the intended preprocessing interface keeps m at least 2, and reflowing the remaining-composition note. Native code and public theorem statements are unchanged. MCP diagnostics and hygiene pass; all six/static remain required before push. AI assistance: OpenAI Codex.

* feat(three-sum): bound charged traversal tree overhead

Bound all native transitions at Chan-He fuel, including skipped entries, by a polylogarithmic tree budget. Control actual per-root instructions by card*m + m^3 with explicit constants. Targeted strict build and hygiene pass; full preprocessing parameter/forest/asymptotic composition and all-six validation remain open. AI assistance: OpenAI Codex.

* feat(three-sum): assemble initialized-input native Chan-He preprocessing

Implementation checkpoint for cslib-community#1446. Assemble actual native frontend/parameters, prime table, stack/table reservations and descriptor-driven root traversal. Prove canonical payload/admissibility/allNodes bridges and shifted magnitude size estimates; execute the complete empty-input program. Targeted strict checks and hygiene pass, aggregate regenerated. Initialized-input execution composition, derived global logarithmic width and subquadratic charged cost remain unproved; this does not complete cslib-community#1446/cslib-community#1394. AI assistance: OpenAI Codex.

* doc(wordram): record complete bounded Chan-He traversal scope

* feat(wordram): complete initialized Chan-He preprocessing

* refactor(wordram): place signed fit and count frame APIs with their models

* fix(wordram): resolve native preprocessing review findings

* style(three-sum): align native host test bindings

Address the optional indentation finding in PR cslib-community#1531's outside review at
e4d2fa0. Only three leading spaces change
in the private probe_spec test; all non-whitespace source characters are
identical. Native programs, public contracts, models and costs are unchanged.

Validation: all six strict gates together, including global Axioms;
actual-base changed-file lints, citation/simp hygiene, PR-name and diff checks.
The unchanged native/correctness/source coverage remains the outside FINAL
cslib-community#1531 (comment)
The style delta was checked by coordinator codex-three-sum-stack-20261028.

Curated abstracts: no impact on statements, scope or rendering. AI assistance:
OpenAI Codex prepared and validated this style-only correction.

* refactor(wordram): reuse list blocks in fusion-tree representation

* feat(3sum): compose native preprocessing and convolution hosts

Compose actual initialized Chan-He preprocessing and every caller-safe
Convolution call through a concrete certified finite ET block. Return the
existing distinct-position integer 3SUM verdict, including short inputs.
Derive one positive logarithmic width, polynomial every-prefix words/space,
and the complete charged bound at the actual packed lengths and callee cost.
Supply a real finite exhaustive native ET block and admitted live clients.

Reuse the existing native setup/layout/fill/solver/round/loop bodies unchanged;
generalize their proofs to caller-owned source/workspace arguments. Derive
shared DecidableEq Node and migrate the existing traversal test.

Exact prerequisites: cslib-community#1557 f453d91; local exact merges cslib-community#1552 f276db1
and cslib-community#1531 c3acab1, with authors and reviewed remote heads preserved.
Source pin: anthropics/formal-math@16a5ce4.
Underlying finite reductions/builders retain Anthropic credit. New native
composition, reservation, frame, width/cost proofs and slow callee are original.

Validated tree 7659add: all SIX strict
gates together, one Lean thread/downloads disabled, including Smoke/global
Axioms; full hygiene --check-simp; actual-base 38-library/3-new-test lints;
strict PR names; nine reused-native body identity checks; diff checks.
Curated abstracts have no impact. The fast backend and final 1.9992 endpoint
remain cslib-community#1394. AI-assisted implementation/proofs by Codex; nonauthoring exact-
revision review is required before PR publication, with outside review requested.

Refs cslib-community#1559

* fix(imports): deduplicate aggregate after counting integration

* fix(imports): deduplicate aggregate after query-splitting integration

* doc(3sum): clarify caller-prefix preservation

Apply root coordinator's sole comment correction after the nonauthoring
ordinary_host_review: exec_round_at protects the prefix below workspace,
including the supplied input, rather than universally preserving header zero.
All comment-free tokens match reviewed e1858e0.
Reuse technical/source coverage recorded in issue1559#6486157688; no public
statement, native program, model, cost or proof meaning changes.

Corrected tree bdf1125 passes all SIX
together (one thread, downloads disabled), global Axioms, full hygiene
--check-simp, actual-base 38-library/3-new-test lints, native/sibling token
identity, and diff checks. Curated abstracts remain unaffected.
Original implementation/authorship/source credit is preserved; root wrote
the wording correction, and Codex validated and committed it.

Refs cslib-community#1559

* fix(imports): regenerate aggregate after Chan-He parameter integration

* test(3sum): address native host review nits

Remove the final signature-only theorem application from the decision test;
all concrete interpreter and admitted positive/negative clients are unchanged.
Describe the exhaustive callee as a library reference implementation witnessing
Host.Callee, and identify the umbrella module's re-exported API.

Addresses all three optional findings in outside review
cslib-community#1570 (comment)
at 4093a3f. This validated coordinator
fix is documentation/test-only. Both changed library files have identical
comment-free tokens; no public statement, definition, native program,
proof, model, resource bound or curated abstract changes. Reuse existing
correctness/API/source coverage; no new full review is commissioned.

Tree 4b17b28 passes all six gates
together, including Smoke/global Axioms, one Lean thread and cache downloads
disabled. Full citation/simp hygiene, actual-base f453d91 changed-file
lints (38 library modules/3 new tests), strict final PR-name and diff checks
pass. Library token identity and exact test-deletion audit pass.

AI-assisted coordinator fix by Codex. Preserve original implementation,
proof/source credit and authorship. Full fast backend/exponent 1.9992
remains open in cslib-community#1394.

Refs cslib-community#1559

* perf(three-sum): check native query tests within default heartbeats

* perf(three-sum): run modulus instance within default heartbeats

* perf(wordram): reduce native parameter proof heartbeat budget

* chore(wordram): scope measured parameter proof budget to reduction task

* chore(wordram): regenerate frontend integration imports

* doc(three-sum): reconcile inherited preprocessing milestone status

* chore(wordram): refresh frontend imports after landed main

* doc(roadmap): restore tensor milestone reference

* doc(roadmap): separate native Chan-He progress from tensor work

* doc(roadmap): separate initialized frontend progress and references

* doc(wordram): restore preprocessing resource and API handoff details

* doc(3sum): align completed native milestones and remaining fast endpoint

---------

Co-authored-by: Codex coordinator <codex@users.noreply.github.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.

feat(wordram): build prime tables and charged collision minimum searches

4 participants