@ceccec/millennium-solutions 9.5.4 → 9.5.6
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.
- package/README.md +22 -20
- package/dist/src/0/index.d.ts +0 -14
- package/dist/src/0/index.js +0 -52
- package/package.json +4 -3
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
|
|
29
|
-
<sub>SEALED · `
|
|
30
|
-
-
|
|
31
|
-
<sub>SEALED · `
|
|
32
|
-
-
|
|
33
|
-
<sub>SEALED · `
|
|
28
|
+
- The formal layer holds 939 kernel-accepted declarations across 41 files, and no file uses sorry or native_decide outside a comment.
|
|
29
|
+
<sub>SEALED · `4fbbee52-f94d-81bf-b745-753df9646f45`</sub>
|
|
30
|
+
- 737 of those 939 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 · `4bf71a4a-3a3d-8da3-8651-60419b72bf34`</sub>
|
|
32
|
+
- 1016 of them are sealed into the ledger, each carrying a receipt derived from the one before it.
|
|
33
|
+
<sub>SEALED · `c64ac22b-8407-88b4-a93a-2016e24c0b88`</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
|
|
57
|
-
<sub>SEALED · `
|
|
58
|
-
- The count is an exact multiple of eight —
|
|
59
|
-
<sub>SEALED · `
|
|
56
|
+
- The ledger records 2880 entries with 0 chain breaks, 0 duplicate keys and 0 duplicate receipts.
|
|
57
|
+
<sub>SEALED · `d876df9c-d913-8074-ac4a-717e48b82743`</sub>
|
|
58
|
+
- The count is an exact multiple of eight — 2880 is 360 octaves with no remainder.
|
|
59
|
+
<sub>SEALED · `a2681e20-5f23-83ad-b348-cbbf333bf82c`</sub>
|
|
60
60
|
|
|
61
61
|
## 5 · What the gate does and does not do
|
|
62
62
|
|
|
@@ -100,7 +100,7 @@ results; it is the result, read off the same arithmetic that produced the table.
|
|
|
100
100
|
|
|
101
101
|
## 7 · The proofs, as they document themselves
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
41 Lean files in 7 wings, 939 declarations of which 924 are theorems. The prose in this section is read out of the
|
|
104
104
|
sources — their frontmatter, their header comments and the comment above each theorem. Editing a proof edits
|
|
105
105
|
this page; there is nowhere else to keep the description in step.
|
|
106
106
|
|
|
@@ -156,10 +156,12 @@ this page; there is nowhere else to keep the description in step.
|
|
|
156
156
|
|
|
157
157
|
**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.
|
|
158
158
|
|
|
159
|
-
**The instruments, and the three rules they are allowed to have** — `instruments.lean`,
|
|
159
|
+
**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.
|
|
160
160
|
|
|
161
161
|
**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.
|
|
162
162
|
|
|
163
|
+
**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
|
|
164
|
+
|
|
163
165
|
**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.
|
|
164
166
|
|
|
165
167
|
**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.
|
|
@@ -198,7 +200,7 @@ this page; there is nowhere else to keep the description in step.
|
|
|
198
200
|
|
|
199
201
|
**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.
|
|
200
202
|
|
|
201
|
-
31 of
|
|
203
|
+
31 of 939 declarations carry no comment of their own and are shown here as the gap they are, not
|
|
202
204
|
filled with a template.
|
|
203
205
|
|
|
204
206
|
## 8 · What this build measured about itself
|
|
@@ -207,14 +209,14 @@ Read from the artefacts at build time, never carried between runs.
|
|
|
207
209
|
|
|
208
210
|
| measure | value |
|
|
209
211
|
|---|---|
|
|
210
|
-
| ledger entries | 2,
|
|
211
|
-
| standing — carries its own proof | **
|
|
212
|
+
| ledger entries | 2,880 — 360 octaves exactly |
|
|
213
|
+
| standing — carries its own proof | **924** |
|
|
212
214
|
| carried — withdrawn on its own evidence, proved by a live theorem | **435** |
|
|
213
215
|
| withdrawn — nothing proves it | 1,521 |
|
|
214
|
-
| proved in total | **
|
|
215
|
-
| standing keys → distinct theorems |
|
|
216
|
-
| Lean files · theorems |
|
|
217
|
-
| proved `by decide` |
|
|
216
|
+
| proved in total | **1359** of 2,880 |
|
|
217
|
+
| standing keys → distinct theorems | 924 sealed, 0 of them keyed twice, 0 unresolvable |
|
|
218
|
+
| Lean files · theorems | 41 · 924 theorems (737 closed by exhaustion, axiom-free · 187 proved for every value on propext and Quot.sound) + 15 rfl declarations |
|
|
219
|
+
| proved `by decide` | 737 of 939 |
|
|
218
220
|
| claims a machine can render | 103 of 1,555 |
|
|
219
221
|
| claims needing an author | 1,452 — reported, never faked |
|
|
220
222
|
|
|
@@ -267,4 +269,4 @@ whether the work restates someone earlier. [The paper](/paper) typesets every st
|
|
|
267
269
|
|
|
268
270
|
---
|
|
269
271
|
|
|
270
|
-
*15 claims, all verified ·
|
|
272
|
+
*15 claims, all verified · 924 Lean theorems · 2880 ledger entries · trial root `bc0d1eb4-5bd5-858b-9f12-dbfe83890792` · integrity, not truth*
|
package/dist/src/0/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ export declare function toUuid(seed: string): string;
|
|
|
2
2
|
export declare function strictUuidna(value: unknown): string;
|
|
3
3
|
export declare function merge(a: string, b: string): string;
|
|
4
4
|
export declare function gcdBigInt(a: bigint, b: bigint): bigint;
|
|
5
|
-
export declare function seedFromText(text: string, length?: number): number;
|
|
6
5
|
export declare function foldPair(a: string, b: string): {
|
|
7
6
|
forward: string;
|
|
8
7
|
reverse: string;
|
|
@@ -21,9 +20,6 @@ export declare function sealFacets<F extends {
|
|
|
21
20
|
})[];
|
|
22
21
|
root: string;
|
|
23
22
|
};
|
|
24
|
-
export declare function memoByRoot<T>(name: string, matrix: {
|
|
25
|
-
root: string;
|
|
26
|
-
}, compute: () => T): T;
|
|
27
23
|
export declare function digitalRoot(n: number): number;
|
|
28
24
|
export declare function gcd(a: number, b: number): number;
|
|
29
25
|
export declare function isPrime(n: number): boolean;
|
|
@@ -35,13 +31,3 @@ export declare function units(): number[];
|
|
|
35
31
|
export declare function triad(): number[];
|
|
36
32
|
export declare function vortexOrbit(): number[];
|
|
37
33
|
export declare const A432_STEP: number;
|
|
38
|
-
export interface AnimationEngine {
|
|
39
|
-
readonly running: boolean;
|
|
40
|
-
start(): void;
|
|
41
|
-
stop(): void;
|
|
42
|
-
sync(active: boolean): void;
|
|
43
|
-
tick(): void;
|
|
44
|
-
runWhile(active: () => boolean): void;
|
|
45
|
-
dispose(): void;
|
|
46
|
-
}
|
|
47
|
-
export declare function createAnimationEngine(draw: (time: number) => void): AnimationEngine;
|
package/dist/src/0/index.js
CHANGED
|
@@ -54,9 +54,6 @@ export function merge(a, b) {
|
|
|
54
54
|
export function gcdBigInt(a, b) {
|
|
55
55
|
return b === 0n ? a : gcdBigInt(b, a % b);
|
|
56
56
|
}
|
|
57
|
-
export function seedFromText(text, length = 6) {
|
|
58
|
-
return Number.parseInt(toUuid(text).replace(/[^0-9a-f]/g, '').slice(0, length) || '0', 16);
|
|
59
|
-
}
|
|
60
57
|
export function foldPair(a, b) {
|
|
61
58
|
const forward = merge(a, b);
|
|
62
59
|
const reverse = merge(b, a);
|
|
@@ -86,24 +83,6 @@ export function sealFacets(tag, facets) {
|
|
|
86
83
|
root: merkleFold(stamped.map((f) => f.receipt)),
|
|
87
84
|
};
|
|
88
85
|
}
|
|
89
|
-
const reportMemo = new Map();
|
|
90
|
-
const reportComputing = new Set();
|
|
91
|
-
export function memoByRoot(name, matrix, compute) {
|
|
92
|
-
const key = `${name}:${matrix.root}`;
|
|
93
|
-
if (reportMemo.has(key))
|
|
94
|
-
return reportMemo.get(key);
|
|
95
|
-
if (reportComputing.has(key))
|
|
96
|
-
return {};
|
|
97
|
-
reportComputing.add(key);
|
|
98
|
-
try {
|
|
99
|
-
const value = compute();
|
|
100
|
-
reportMemo.set(key, value);
|
|
101
|
-
return value;
|
|
102
|
-
}
|
|
103
|
-
finally {
|
|
104
|
-
reportComputing.delete(key);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
86
|
export function digitalRoot(n) {
|
|
108
87
|
const r = ((n % 9) + 9) % 9;
|
|
109
88
|
return r === 0 ? 9 : r;
|
|
@@ -156,34 +135,3 @@ export function vortexOrbit() {
|
|
|
156
135
|
return orbit;
|
|
157
136
|
}
|
|
158
137
|
export const A432_STEP = 360 / BASE;
|
|
159
|
-
export function createAnimationEngine(draw) {
|
|
160
|
-
let raf = 0, once = 0, spin = 0, running = false;
|
|
161
|
-
const schedule = (fn) => typeof requestAnimationFrame === 'function' ? requestAnimationFrame(fn) : 0;
|
|
162
|
-
const cancel = (id) => {
|
|
163
|
-
if (id && typeof cancelAnimationFrame === 'function')
|
|
164
|
-
cancelAnimationFrame(id);
|
|
165
|
-
};
|
|
166
|
-
function loop(time) {
|
|
167
|
-
if (!running)
|
|
168
|
-
return;
|
|
169
|
-
draw(time);
|
|
170
|
-
raf = schedule(loop);
|
|
171
|
-
}
|
|
172
|
-
return {
|
|
173
|
-
get running() { return running; },
|
|
174
|
-
start() { if (!running) {
|
|
175
|
-
running = true;
|
|
176
|
-
raf = schedule(loop);
|
|
177
|
-
} },
|
|
178
|
-
stop() { running = false; cancel(raf); raf = 0; },
|
|
179
|
-
tick() { cancel(once); once = schedule((t) => { once = 0; draw(t); }); },
|
|
180
|
-
sync(active) { active ? this.start() : (this.stop(), this.tick()); },
|
|
181
|
-
runWhile(active) {
|
|
182
|
-
if (running || spin)
|
|
183
|
-
return;
|
|
184
|
-
const step = (time) => { draw(time); spin = active() ? schedule(step) : 0; };
|
|
185
|
-
spin = schedule(step);
|
|
186
|
-
},
|
|
187
|
-
dispose() { running = false; cancel(raf); raf = 0; cancel(once); once = 0; cancel(spin); spin = 0; },
|
|
188
|
-
};
|
|
189
|
-
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ceccec/millennium-solutions",
|
|
3
|
-
"version": "9.5.
|
|
3
|
+
"version": "9.5.6",
|
|
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/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/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/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/gates-fire.ts && node scripts/import-gate.ts && node scripts/locale-fold.ts && node scripts/security-gate.ts && node scripts/seo.ts && node scripts/sitemap-mesh.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/dashboard.ts && node scripts/accounting.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/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/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/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/gates-fire.ts && node scripts/import-gate.ts && node scripts/locale-fold.ts && node scripts/security-gate.ts && node scripts/seo.ts && node scripts/sitemap-mesh.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/dashboard.ts && node scripts/accounting.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",
|
|
@@ -150,7 +150,8 @@
|
|
|
150
150
|
"recover:gen": "tsx scripts/recover-gen.ts",
|
|
151
151
|
"uses": "node scripts/uses.ts",
|
|
152
152
|
"build:dist": "node scripts/build-dist.ts",
|
|
153
|
-
"prepack": "node scripts/build-dist.ts"
|
|
153
|
+
"prepack": "node scripts/build-dist.ts",
|
|
154
|
+
"canon": "node scripts/canon-gate.ts"
|
|
154
155
|
},
|
|
155
156
|
"devDependencies": {
|
|
156
157
|
"@types/node": "^26.2.0",
|