尚未收集儲存庫資訊。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A record-keeping site for the correlation constants of matroids: live at matroid-correlation-constants.icarm.cloud.
This website was created by Chris Eur using ChatGPT-5.6 Sol Max. (His
original implementation lives on the github-flow branch.)
Choose a basis of a matroid M uniformly at random. For distinct elements i, j, write B_ij for the set of bases containing both, B^ij for the set avoiding both, and B^i_j for the set avoiding i and containing j (subscripts contained, superscripts avoided). The correlation constant is
α(M) = max over i ≠ j of |B^ij|·|B_ij| / (|B^i_j|·|B^j_i|)
(maximum over nonloop, noncoloop pairs). α(M) ≤ 1 means every pair is negatively correlated; this holds for graphic, regular, and many other matroids, but not in general. Huh–Schröter–Wang proved α(M) ≤ 2 for every matroid and reached 8/7; the largest verified value is 100/81 (12 elements over GF(3), August 2026), and known infinite families approach 4/3. The challenge: a concrete matroid with α(M) ≥ 4/3.
src/verify.ts): the matroid axioms are
checked (basis exchange, or the circuit axioms), every basis is
enumerated, and all ratios are compared by exact integer cross
multiplication. Bases stream through constant-memory accumulators — the
pair counts behind α, a canonical JSON kept only while small, and a
chunked SHA-256 of the ascending mask stream (the canonical matroid hash
used for exact-tie detection) — so nothing scales with the number of
bases. Limits: n ≤ 30, ≤ 5,000 listed sets, ≤ 5,000 matrix entries. (The
ceiling is enumeration CPU: everything on ≤ 24 elements is accepted;
beyond that, only ranks whose independent sets number at most 2^25 —
e.g. rank ≤ 12 at n = 26, rank ≤ 9 at n = 30, ~45 s worst. Circuit and
hyperplane descriptions stop at 24 elements, since their axiom checks
tabulate all 2^n subsets.)public/chart.js, progressive enhancement over a
server-rendered SVG): every stored matroid plotted against the twelve
known family curves, with the draft site's filters and the 4/3 target
line. Families live in the database too: a family is a reviewed claim
(a formula for every parameter cannot be verified by enumeration), so
the submission form's "infinite family" tab files a proposal — formula,
construction, exact curve values, proof link, discovery record — that
stays pending until a site admin accepts it, at which point it gains
its curve, card, and /family/:slug page together. A /mathematics page
carries the definitions, background, and full proofs of the family
formulas (the one page that loads MathJax).GET /database.json, ETag-revalidated). Submissions themselves are
form-only — the site emphasizes humans filling out the forms, and the
earlier JSON API (bearer tokens, POST /api/verify) was removed; it
can be restored from git history if programmatic demand appears.Infinite families are out of scope for direct submission — they need human proof review and are handled via pull requests instead.
Cloudflare Workers with
Hono. Users, matroids, and families live in D1
(migrations/); login sessions and post-submit result flashes live in
KV. Session cookies are stored only as SHA-256 hashes.
npm install
npx wrangler d1 migrations apply matroid-correlation-constants --local
npm run dev # local server
npm run typecheck
npm test # verifier tests (Node 22.6+)
GitHub login needs a dev OAuth app (callback
http://localhost:8787/auth/github/callback) with its credentials in
.dev.vars:
GITHUB_CLIENT_ID=...
GITHUB_CLIENT_SECRET=...
Deploys are manual (CI only typechecks and tests,
.github/workflows/test.yml). Apply the remote D1 migrations first, then
deploy the worker:
npx wrangler d1 migrations apply matroid-correlation-constants --remote
npm run deploy
One-time setup: create the D1 database and KV namespace (ids in
wrangler.jsonc), and set GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET via
wrangler secret put from a GitHub OAuth app whose callback URL is
https://matroid-correlation-constants.icarm.cloud/auth/github/callback.