@ceccec/millennium-solutions 9.7.0 → 9.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +29 -21
  2. package/package.json +9 -4
package/README.md CHANGED
@@ -25,12 +25,12 @@ last because the orbit never reaches it.
25
25
 
26
26
  ## 1 · What is proved
27
27
 
28
- - The formal layer holds 947 kernel-accepted declarations across 42 files, and no file uses sorry or native_decide outside a comment.
29
- <sub>SEALED · `944cfcf2-3033-834b-b171-c3263d2b54e5`</sub>
30
- - 745 of those 947 are THEOREMS by this deposit's own rule — they close by decide, which is to say the kernel evaluates the proposition over its whole finite domain rather than accepting a declaration; the remaining 202 close by rfl and are declarations.
31
- <sub>SEALED · `19d6b59c-36f6-81cb-ba67-aa9c917755d3`</sub>
32
- - 1024 of them are sealed into the ledger, each carrying a receipt derived from the one before it.
33
- <sub>SEALED · `b9fe4b69-85dd-838b-8119-b836b5321f5b`</sub>
28
+ - The formal layer holds 984 kernel-accepted declarations across 44 files, and no file uses sorry or native_decide outside a comment.
29
+ <sub>SEALED · `e2937d6f-b578-8133-90aa-64f6548f8e34`</sub>
30
+ - 782 of those 984 are THEOREMS by this deposit's own rule — they close by decide, which is to say the kernel evaluates the proposition over its whole finite domain rather than accepting a declaration; the remaining 202 close by rfl and are declarations.
31
+ <sub>SEALED · `97fe4301-84e4-8d59-bbea-bb0c07dcd005`</sub>
32
+ - 1061 of them are sealed into the ledger, each carrying a receipt derived from the one before it.
33
+ <sub>SEALED · `505475ab-ec77-85c6-9105-afda93b42a54`</sub>
34
34
 
35
35
  ## 2 · The ring
36
36
 
@@ -53,10 +53,10 @@ last because the orbit never reaches it.
53
53
 
54
54
  ## 7 · The ledger
55
55
 
56
- - The ledger records 2888 entries with 0 chain breaks, 0 duplicate keys and 0 duplicate receipts.
57
- <sub>SEALED · `81e0873c-7539-8b22-a11e-b1cfcbbaf0eb`</sub>
58
- - The count is an exact multiple of eight — 2888 is 361 octaves with no remainder.
59
- <sub>SEALED · `8dd0759e-26f6-8ce8-b0cf-6151a586aeea`</sub>
56
+ - The ledger records 2925 entries with 0 chain breaks, 0 duplicate keys and 0 duplicate receipts.
57
+ <sub>SEALED · `ac00aeae-fe6f-8712-8d96-bd1cedce0153`</sub>
58
+ - The count is 2925, which is 365 octaves and 5 over — the octave is a target the theorems earn, never a quota they are invented to fill.
59
+ <sub>SEALED · `598ad522-bf64-8c05-87e7-766072f5e1b1`</sub>
60
60
 
61
61
  ## 5 · What the gate does and does not do
62
62
 
@@ -64,6 +64,10 @@ last because the orbit never reaches it.
64
64
  <sub>SEALED · `37ab7769-a1ac-8ef6-9809-e214d6285057`</sub>
65
65
  - The gate does not decide whether a statement is true: "two plus two equals five" passes it, so holding means not drained, never correct.
66
66
  <sub>SEALED · `f63cc6c5-44f9-8d92-afa7-ab9483573b28`</sub>
67
+ - The tools are reachable from a program: 21 of them over 2 transport(s) — JSON-RPC on stdio for a model client, and the same surface over HTTP for a browser — of which 4 write to this tree and are refused unless the server is started with --allow-write.
68
+ <sub>SEALED · `e15edd81-96c8-81fa-8c15-b971c7cb49e5`</sub>
69
+ - The stdio server advertises 2 of those 21 and reaches the rest through call_tool, because a model client pays for every tool description on every turn; the HTTP server lists them all, because a browser pays nothing for a list and cannot guess what it was not shown.
70
+ <sub>SEALED · `fd43fc14-9388-8bd2-ae57-e99b1c5c1b8e`</sub>
67
71
 
68
72
  ## The floor
69
73
 
@@ -89,8 +93,8 @@ walked, computed from the statements themselves. Nothing is chosen for this tabl
89
93
  | 96,000 | `the_area_of_an_integer_right_triangle_is_a_multiple_of_six` | `elementary.lean` |
90
94
  | 95,048 | `two_twenty_and_two_eighty_four_are_the_smallest_amicable_pair` | `demand2.lean` |
91
95
  | 80,000 | `the_wythoff_sequences_partition_the_integers` | `elementary.lean` |
96
+ | 65,536 | `the_four_hex_field_round_trips_over_its_whole_space` | `handle.lean` |
92
97
  | 46,656 | `the_powers_of_two_mod_nine_and_of_three_mod_seven_are_isomorphic` | `elementary.lean` |
93
- | 44,100 | `the_rejected_command_gets_a_receipt` | `mechanical.lean` |
94
98
 
95
99
  The largest domain settled here is **152,568,360,000 cases**, and it is finite — as every
96
100
  entry in this ledger is, because `by decide` works by exhausting a domain and an infinite one cannot be
@@ -100,7 +104,7 @@ results; it is the result, read off the same arithmetic that produced the table.
100
104
 
101
105
  ## 7 · The proofs, as they document themselves
102
106
 
103
- 42 Lean files in 7 wings, 947 declarations of which 932 are theorems. The prose in this section is read out of the
107
+ 44 Lean files in 7 wings, 984 declarations of which 969 are theorems. The prose in this section is read out of the
104
108
  sources — their frontmatter, their header comments and the comment above each theorem. Editing a proof edits
105
109
  this page; there is nowhere else to keep the description in step.
106
110
 
@@ -134,16 +138,20 @@ this page; there is nowhere else to keep the description in step.
134
138
 
135
139
  **The water loop** — `energy.lean`, 28 theorem(s). THE WATER LOOP, ACCOUNTED. Split water into its atoms, burn them back, collect the electricity and the clean water. Every step of that is real and buildable. The question is only ever the ledger, so here it is.
136
140
 
141
+ **Four hex, exactly computed — and what the handle has to carry instead** — `handle.lean`, 8 theorem(s). argument on a model. No theorem here decides anything about cryptography. prior_art_search: not performed — the sources are named above rather than searched for. prior_art_pool: bounded prior_art_own: nothing; this file exists to put a bound under a construction, not to invent one
142
+
137
143
  **The Millennium floor** — `index.lean`, 11 theorem(s). Bounded, so the credit stops where the earlier work does: what is NOT prior art is the use of that orbit as a floor for what this deposit does and does not settle, which is a statement about this repository and has no earlier author. Verification by exhaustion in Lean is this deposit's contribution, and verification is not discovery. prior_art_search: literature search performed 2026-09-05, terms "doubling sequence modulo 9 orbit 1 2 4 8 7 5 cyclic group generator digital root"; prior art found and credited. prior_art_pool: bounded digit arithmetic of the doubling sequence; searchable independently of this deposit. BOUNDED means a search is well posed and simply has not been run — the row is unclassified because nobody looked. UNBOUNDED means the subject is this artifact, so there is no pool to search and the row will stay unclassified however much work is done. They look identical in a count and need opposite responses, which is the distinction uuidna-49 asked for and nobody had drawn. prior_art_own: the Millennium floor, computed from this sequence The Millennium floor — seven honest theorems, one per problem, COMPUTED from the sequence.
138
144
 
139
145
  **The instruments, and the three rules they are allowed to have** — `instruments.lean`, 29 theorem(s). occurrence of a substring — and each is standard enough that naming one author would be arbitrary. This row is kind 1 rather than kind 2 because kind 2 asserts that a search was performed and found nothing, and no such search was performed for these. What is this deposit's is not the rules: it is that three of its own instruments hold them by decision of the kernel, instead of by a block of reasoning written inside the instrument that needs them and checked by that same instrument.
140
146
 
141
- **Light, space and time — arithmetic on numbers a standards body fixed** — `light.lean`, 15 theorem(s). Poids et Mesures, not results of this deposit: the metre from the speed of light (17th CGPM, 1983) and the seven defining constants fixed exactly in the 2019 revision of the SI, effective 20 May 2019 (BIPM, https://www.bipm.org/en/measurement-units/si-defining-constants). Nothing here measures anything.
147
+ **Light, space and time — arithmetic on numbers a standards body fixed** — `light.lean`, 17 theorem(s). Poids et Mesures, not results of this deposit: the metre from the speed of light (17th CGPM, 1983) and the seven defining constants fixed exactly in the 2019 revision of the SI, effective 20 May 2019 (BIPM, https://www.bipm.org/en/measurement-units/si-defining-constants). Nothing here measures anything.
142
148
 
143
149
  **The three facts the unchecked files held alone** — `nucleus.lean`, 8 theorem(s). is decided here is ARITHMETIC over lists of small naturals and nothing else: that certain prefix sums of a typed capacity list take certain values, that a product of numerators equals a product of denominators, and that one integer is not another. No theorem below decides anything about a nucleus. prior_art_search: not performed for these rows — the sources are named above rather than searched for, which is kind 1 and not kind 2. Nothing here claims a search returned nothing. prior_art_pool: bounded prior_art_own: nothing; this file exists to bring three facts under the kernel, not to find them
144
150
 
145
151
  **Every phenomenon this deposit touches, and the rule for the rest** — `phenomena.lean`, 4 theorem(s). Générale des Poids et Mesures (2019 revision, effective 20 May 2019); the electrochemical results are Michael Faraday's laws of electrolysis, 1834, and the standard enthalpy of combustion of hydrogen. Every physical result named here has an earlier author or a standards body, and none is this deposit's.
146
152
 
153
+ **The Planck length, and what a lattice may say about it** — `planck.lean`, 27 theorem(s). here and none is asserted. What is decided below is arithmetic on those digit sequences: a quotient, a list length, a residue, and an exhaustion over 2,197 products. prior_art_search: not performed — the source is named above rather than searched for. Nothing here claims a search of the literature returned nothing. prior_art_pool: bounded prior_art_own: nothing about nature; the one thing this file contributes is the REFUSAL below, decided
154
+
147
155
  **Order-invariance** — `quantum.lean`, 12 theorem(s). form is invariant under permutation of its input, which is why `receipt_is_order_invariant` holds. What this file contributes is the Lean verification over a stated finite domain and the negative controls beside it — `naive_fold_is_not_order_invariant` shows the property is bought by the sort and not free, and `the_receipt_is_not_injective` and `the_invariance_is_canonicalisation_not_physics` state its limits. Verification and refusal, not discovery. prior_art_search: literature search performed 2026-09-05, terms "sorted Merkle tree order-invariant set commitment canonical ordering leaves"; prior art found and credited. This file was `unclassified` — no search had ever been run for it — and it is one of the 8 files whose 86 theorems are staged for DOIs. prior_art_pool: mixed canonicalisation before folding is a searchable technique; the receipt it folds is ours. BOUNDED means a search is well posed and simply has not been run — the row is unclassified because nobody looked. UNBOUNDED means the subject is this artifact, so there is no pool to search and the row will stay unclassified however much work is done. They look identical in a count and need opposite responses, which is the distinction uuidna-49 asked for and nobody had drawn. prior_art_own: order-invariance of this deposit's receipt The quantum receipt — order invariance, proved rather than asserted.
148
156
 
149
157
  **What exhaustion reaches, and what lies outside it** — `reach.lean`, 12 theorem(s). old as mathematics; the deposit claims none of it. What is its own here is the decision over its OWN bounds, and the statement of where that decision stops.
@@ -202,7 +210,7 @@ this page; there is nowhere else to keep the description in step.
202
210
 
203
211
  **Recovered — claims that computed and were withdrawn for want of a proof** — `recovered.lean`, 15 theorem(s). material, credited. What is NOT prior art is that these particular statements sat WITHDRAWN in this deposit's ledger, each recorded as "not backed by a Lean proof. Its evidence is a TypeScript test", while every one is decidable in a line. prior_art_search: literature search performed 2026-09-05, terms "units and non-units of Z/9 multiplicative inverses group of units modulo 9"; prior art found and credited.
204
212
 
205
- 31 of 947 declarations carry no comment of their own and are shown here as the gap they are, not
213
+ 31 of 984 declarations carry no comment of their own and are shown here as the gap they are, not
206
214
  filled with a template.
207
215
 
208
216
  ## 8 · What this build measured about itself
@@ -211,14 +219,14 @@ Read from the artefacts at build time, never carried between runs.
211
219
 
212
220
  | measure | value |
213
221
  |---|---|
214
- | ledger entries | 2,888 — 361 octaves exactly |
215
- | standing — carries its own proof | **932** |
222
+ | ledger entries | 2,925 — 365 octaves and 5 over |
223
+ | standing — carries its own proof | **969** |
216
224
  | carried — withdrawn on its own evidence, proved by a live theorem | **435** |
217
225
  | withdrawn — nothing proves it | 1,521 |
218
- | proved in total | **1367** of 2,888 |
219
- | standing keys → distinct theorems | 932 sealed, 0 of them keyed twice, 0 unresolvable |
220
- | Lean files · theorems | 42 · 932 theorems (745 closed by exhaustion, axiom-free · 187 proved for every value on propext and Quot.sound) + 15 rfl declarations |
221
- | proved `by decide` | 745 of 947 |
226
+ | proved in total | **1404** of 2,925 |
227
+ | standing keys → distinct theorems | 969 sealed, 0 of them keyed twice, 0 unresolvable |
228
+ | Lean files · theorems | 44 · 969 theorems (782 closed by exhaustion, axiom-free · 187 proved for every value on propext and Quot.sound) + 15 rfl declarations |
229
+ | proved `by decide` | 782 of 984 |
222
230
  | claims a machine can render | 103 of 1,555 |
223
231
  | claims needing an author | 1,452 — reported, never faked |
224
232
 
@@ -273,4 +281,4 @@ whether the work restates someone earlier. [The paper](/paper) typesets every st
273
281
 
274
282
  ---
275
283
 
276
- *15 claims, all verified · 932 Lean theorems · 2888 ledger entries · trial root `32d80b77-5d07-8b4e-a531-36747eb153f5` · integrity, not truth*
284
+ *17 claims, all verified · 969 Lean theorems · 2925 ledger entries · trial root `4be73d9d-df35-8604-8806-2e097fd8b820` · integrity, not truth*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ceccec/millennium-solutions",
3
- "version": "9.7.0",
3
+ "version": "9.7.4",
4
4
  "description": "Verifiable, recomputable ℤ/9 vortex framework in ONE package — content-addressing, audit ledger, exact arithmetic, and the honesty toolkit. Facts only.",
5
5
  "author": {
6
6
  "name": "Tsvetan Rouschev",
@@ -36,7 +36,7 @@
36
36
  "prose-trial": "node scripts/prose-trial.ts",
37
37
  "seal": "node scripts/seal.ts",
38
38
  "typecheck": "tsc --noEmit",
39
- "release": "node scripts/release-snapshot.ts && tsc --noEmit && node scripts/crypto-kat.ts && node scripts/prose-trial.ts && node scripts/lean.ts && node scripts/translate-gate.ts && node scripts/lean-agree.ts && node scripts/hardcode-gate.ts && node scripts/one-author-gate.ts && node scripts/orphan-gate.ts && node scripts/canon-gate.ts && node scripts/authority-gate.ts && node scripts/lessons.ts --write && node scripts/attribution-gate.ts && node scripts/parallel-seal.ts && node scripts/retire-lexical.ts && node scripts/lean-gen.ts --emit && node scripts/seal-lean.ts && node scripts/priorart-gen.ts && node scripts/axiom-index.ts && node scripts/imagine.ts && node scripts/analytics.ts && node scripts/pages.ts && node scripts/gaps.ts && node scripts/dashboard.ts && node scripts/boundaries.ts && node scripts/rights.ts && node scripts/notice.ts && node scripts/challenges.ts && node scripts/heart.ts && node scripts/accounting.ts && node scripts/forensic-audit.ts && node scripts/speedup.ts && npm run docs:build && node scripts/locale-fold.ts && node scripts/gates-fire.ts && node scripts/import-gate.ts && node scripts/security-gate.ts && node scripts/seven.ts && node scripts/css-gate.ts && node scripts/seo.ts && node scripts/sitemap-mesh.ts && node scripts/zenodo-theorems.ts --write && node scripts/zenodo-gate.ts && node scripts/theorem-pages-gate.ts && node scripts/receipt-audit.ts && node scripts/forensics.ts && node scripts/claims-gate.ts && node scripts/harmony-currency.ts && node scripts/gate-corpus.ts && node scripts/seal.ts && node scripts/readme.ts && node scripts/verify.ts && node scripts/trial-all.ts && node scripts/wholeness.ts && node scripts/lean-claims.ts && node scripts/discover.ts && node scripts/release.ts && node scripts/changelog.ts && node scripts/zenodo-sync.ts && node scripts/dashboard.ts && node scripts/accounting.ts && node scripts/notice.ts && node scripts/metrics.ts && node scripts/deployed.ts",
39
+ "release": "node scripts/release-snapshot.ts && tsc --noEmit && node scripts/crypto-kat.ts && node scripts/prose-trial.ts && node scripts/lean.ts && node scripts/translate-gate.ts && node scripts/lean-agree.ts && node scripts/hardcode-gate.ts && node scripts/one-author-gate.ts && node scripts/orphan-gate.ts && node scripts/canon-gate.ts && node scripts/independent.ts && node scripts/handle-gate.ts && node scripts/authority-gate.ts && node scripts/lessons.ts --write && node scripts/attribution-gate.ts && node scripts/parallel-seal.ts && node scripts/retire-lexical.ts && node scripts/lean-gen.ts --emit && node scripts/seal-lean.ts && node scripts/priorart-gen.ts && node scripts/axiom-index.ts && node scripts/imagine.ts && node scripts/analytics.ts && node scripts/pages.ts && node scripts/gaps.ts && node scripts/dashboard.ts && node scripts/boundaries.ts && node scripts/rights.ts && node scripts/notice.ts && node scripts/challenges.ts && node scripts/heart.ts && node scripts/accounting.ts && node scripts/forensic-audit.ts && node scripts/speedup.ts && node scripts/zenodo-json.ts && node scripts/zenodo-theorems.ts --write && npm run docs:build && node scripts/locale-fold.ts && node scripts/gates-fire.ts && node scripts/import-gate.ts && node scripts/security-gate.ts && node scripts/seven.ts && node scripts/css-gate.ts && node scripts/seo.ts && node scripts/sitemap-mesh.ts && node scripts/zenodo-gate.ts && node scripts/theorem-pages-gate.ts && node scripts/receipt-audit.ts && node scripts/forensics.ts && node scripts/claims-gate.ts && node scripts/harmony-currency.ts && node scripts/gate-corpus.ts && node scripts/seal.ts && node scripts/readme.ts && node scripts/verify.ts && node scripts/trial-all.ts && node scripts/wholeness.ts && node scripts/lean-claims.ts && node scripts/discover.ts && node scripts/release.ts && node scripts/changelog.ts && node scripts/zenodo-sync.ts && node scripts/dashboard.ts && node scripts/accounting.ts && node scripts/notice.ts && node scripts/metrics.ts && node scripts/deployed.ts",
40
40
  "prepublishOnly": "node scripts/seal.ts",
41
41
  "gaps": "node scripts/gaps.ts",
42
42
  "harmony": "node scripts/gaps.ts && node scripts/seal.ts && node scripts/wholeness.ts && npm run docs:build && node scripts/seo.ts",
@@ -70,6 +70,7 @@
70
70
  "dashboard": "node scripts/dashboard.ts",
71
71
  "boundaries": "node scripts/boundaries.ts",
72
72
  "mcp": "node scripts/mcp.ts",
73
+ "mcp:http": "MCP_NO_STDIO=1 node scripts/mcp-http.ts",
73
74
  "harmony-seal": "node scripts/harmony-seal.ts",
74
75
  "i18n": "node scripts/i18n.ts",
75
76
  "postdocs:build": "node scripts/sw-integrity.ts && node scripts/theorem-pages-gate.ts",
@@ -145,7 +146,7 @@
145
146
  "cite-audit": "tsx scripts/cite-audit.ts",
146
147
  "lanes-check": "tsx scripts/lanes-check.ts",
147
148
  "covered-gate": "tsx scripts/covered-gate.ts",
148
- "independent": "tsx scripts/independent.ts",
149
+ "independent": "node scripts/independent.ts",
149
150
  "recover": "tsx scripts/recover.ts",
150
151
  "recover:gen": "tsx scripts/recover-gen.ts",
151
152
  "uses": "node scripts/uses.ts",
@@ -159,7 +160,11 @@
159
160
  "provenance": "node scripts/provenance.ts",
160
161
  "authority": "node scripts/authority-gate.ts",
161
162
  "changelog": "node scripts/changelog.ts",
162
- "zenodo-sync": "node scripts/zenodo-sync.ts"
163
+ "zenodo-sync": "node scripts/zenodo-sync.ts",
164
+ "mcp-http": "node scripts/mcp-http.ts",
165
+ "handle-gate": "node scripts/handle-gate.ts",
166
+ "affected": "node scripts/affected.ts",
167
+ "verify-clone": "node scripts/verify-clone.ts"
163
168
  },
164
169
  "devDependencies": {
165
170
  "@types/node": "^26.2.0",