@ceccec/millennium-solutions 9.3.2 → 9.3.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.
- package/README.md +54 -40
- package/dist/mod.core.d.ts +9 -0
- package/dist/mod.core.js +9 -0
- package/dist/src/0/index.d.ts +47 -0
- package/dist/src/0/index.js +189 -0
- package/dist/src/0/ledger.d.ts +1 -0
- package/dist/src/0/ledger.js +25 -0
- package/dist/src/0/trinity-matrix.d.ts +1 -0
- package/dist/src/0/trinity-matrix.js +16 -0
- package/dist/src/5/aspects.d.ts +1 -0
- package/dist/src/5/aspects.js +22 -0
- package/dist/src/5/reflection.d.ts +1 -0
- package/dist/src/5/reflection.js +25 -0
- package/dist/src/7/rosetta.d.ts +1 -0
- package/dist/src/7/rosetta.js +24 -0
- package/dist/src/9/enumeration.d.ts +1 -0
- package/dist/src/9/enumeration.js +14 -0
- package/dist/src/honesty/index.d.ts +16 -0
- package/dist/src/honesty/index.js +69 -0
- package/package.json +27 -10
- package/.zenodo.json +0 -51
- package/ABSTRACT.md +0 -155
- package/ACCOUNTING.md +0 -27
- package/AXIOMS.md +0 -574
- package/CHALLENGES.md +0 -2434
- package/DEPLOY.md +0 -39
- package/DEVELOP.md +0 -34
- package/HEART.md +0 -112
- package/PHYSICS-SCALES.md +0 -80
- package/PRIOR-ART.md +0 -151
- package/PROOF-OF-CONCEPT.md +0 -81
- package/REALISATIONS.md +0 -87
- package/RESEARCH.md +0 -188
- package/RULES.md +0 -57
- package/SEQUENCE-DECODE.md +0 -196
- package/SIGNATURE.md +0 -34
- package/THEOREMS.md +0 -97
- package/WHITEPAPER.md +0 -40
- package/WORKFLOWS.md +0 -47
- package/boundaries.md +0 -23
- package/captain.md +0 -85
- package/compare.md +0 -42
- package/compute.md +0 -543
- package/cryptography.md +0 -55
- package/dashboard.md +0 -50
- package/examples.md +0 -47
- package/folds.md +0 -65
- package/forensic.md +0 -67
- package/guide.md +0 -126
- package/harness.md +0 -20
- package/index.md +0 -217
- package/mod.core.ts +0 -10
- package/nature.md +0 -58
- package/organism.md +0 -30
- package/paper.md +0 -8100
- package/proofs.md +0 -26
- package/quantum.md +0 -40
- package/rights.md +0 -39
- package/solutions.md +0 -28
- package/speedup.md +0 -41
- package/src/0/chacha.ts +0 -3
- package/src/0/crypt.ts +0 -4
- package/src/0/csp.ts +0 -10
- package/src/0/entanglement.ts +0 -31
- package/src/0/fusion.ts +0 -28
- package/src/0/holographic.ts +0 -57
- package/src/0/impossible.ts +0 -30
- package/src/0/imprint.ts +0 -160
- package/src/0/index.ts +0 -263
- package/src/0/ledger.ts +0 -25
- package/src/0/legible.ts +0 -29
- package/src/0/limit.ts +0 -29
- package/src/0/merkle-proof.ts +0 -3
- package/src/0/null-token.ts +0 -24
- package/src/0/sha256.ts +0 -3
- package/src/0/singularity.ts +0 -20
- package/src/0/stream.ts +0 -47
- package/src/0/trinities.ts +0 -37
- package/src/0/trinity-matrix.ts +0 -20
- package/src/0/version-matrix.ts +0 -70
- package/src/1/acceptance.ts +0 -26
- package/src/1/index.ts +0 -80
- package/src/1/paradox.ts +0 -28
- package/src/1/vortex.lean +0 -6
- package/src/2/frequency-scales.ts +0 -28
- package/src/2/iching.ts +0 -34
- package/src/2/index.ts +0 -78
- package/src/2/primes-vortex.ts +0 -12
- package/src/2/quantum.ts +0 -48
- package/src/2/string-scale.ts +0 -14
- package/src/2/vortex.lean +0 -10
- package/src/3/index.ts +0 -63
- package/src/3/pi-bbp.ts +0 -13
- package/src/3/trinity.ts +0 -39
- package/src/3/vortex.lean +0 -7
- package/src/4/git.ts +0 -30
- package/src/4/index.ts +0 -63
- package/src/4/vortex.lean +0 -6
- package/src/5/aspects.ts +0 -27
- package/src/5/center.ts +0 -35
- package/src/5/development.ts +0 -45
- package/src/5/diamond.ts +0 -35
- package/src/5/folds.ts +0 -12
- package/src/5/index.ts +0 -63
- package/src/5/reflection.lean +0 -14
- package/src/5/reflection.ts +0 -14
- package/src/5/vortex.lean +0 -10
- package/src/6/dna.ts +0 -27
- package/src/6/index.ts +0 -63
- package/src/6/vortex.lean +0 -7
- package/src/7/cross.ts +0 -31
- package/src/7/glagolitic.ts +0 -51
- package/src/7/index.ts +0 -67
- package/src/7/language-lens.ts +0 -41
- package/src/7/lens.ts +0 -41
- package/src/7/locale.ts +0 -105
- package/src/7/rbac.ts +0 -31
- package/src/7/rosetta-clay.ts +0 -15
- package/src/7/rosetta.lean +0 -11
- package/src/7/rosetta.ts +0 -11
- package/src/7/string-dimensions.ts +0 -14
- package/src/7/vortex.lean +0 -6
- package/src/8/infinite.ts +0 -26
- package/src/8/merkaba/field.ts +0 -27
- package/src/8/merkaba/geometry.ts +0 -16
- package/src/8/merkaba/touch.ts +0 -26
- package/src/8/nucleus/magic.lean +0 -15
- package/src/8/nucleus/proton-mass-fit.ts +0 -9
- package/src/8/nucleus/proton-mass.lean +0 -10
- package/src/8/nucleus/shell-model-magic.ts +0 -10
- package/src/8/vortex.lean +0 -7
- package/src/9/access.ts +0 -34
- package/src/9/aura-funding.ts +0 -25
- package/src/9/coins.ts +0 -25
- package/src/9/enumeration.ts +0 -13
- package/src/9/funding.ts +0 -85
- package/src/9/security.ts +0 -36
- package/src/9/society.ts +0 -32
- package/src/9/vortex.lean +0 -11
- package/src/api/gates.ts +0 -122
- package/src/api/index.ts +0 -447
- package/src/api/lanes.ts +0 -81
- package/src/claims/index.ts +0 -81
- package/src/demand/queries.json +0 -1764
- package/src/face/index.ts +0 -100
- package/src/from/the/heart/index.ts +0 -11
- package/src/honesty/boundaries.ts +0 -29
- package/src/honesty/index.ts +0 -63
- package/src/html/index.ts +0 -10
- package/src/latex/index.ts +0 -474
- package/src/millennium/index.ts +0 -53
- package/src/play/the/game/index.ts +0 -12
- package/src/proof/README.md +0 -118
- package/src/proof/address.lean +0 -147
- package/src/proof/coin.lean +0 -152
- package/src/proof/covered.json +0 -9
- package/src/proof/demand.lean +0 -134
- package/src/proof/demand2.lean +0 -207
- package/src/proof/demand3.lean +0 -183
- package/src/proof/discovered.json +0 -19125
- package/src/proof/elementary.lean +0 -446
- package/src/proof/energy.lean +0 -291
- package/src/proof/families.lean +0 -648
- package/src/proof/fixtures/axiom-control.lean +0 -39
- package/src/proof/flow.lean +0 -54
- package/src/proof/fnv.lean +0 -116
- package/src/proof/generated-theorems.json +0 -207
- package/src/proof/generated.lean +0 -101
- package/src/proof/imagined.lean +0 -492
- package/src/proof/index.lean +0 -156
- package/src/proof/index.ts +0 -916
- package/src/proof/involution.lean +0 -90
- package/src/proof/ledgerclaims.lean +0 -84
- package/src/proof/light.lean +0 -158
- package/src/proof/mechanical.lean +0 -524
- package/src/proof/merkaba.lean +0 -89
- package/src/proof/merkle.lean +0 -132
- package/src/proof/nim.lean +0 -311
- package/src/proof/novelty.json +0 -751
- package/src/proof/phenomena.lean +0 -90
- package/src/proof/priorart.lean +0 -190
- package/src/proof/quantum.lean +0 -159
- package/src/proof/reach.lean +0 -105
- package/src/proof/recovered.lean +0 -56
- package/src/proof/reversal.lean +0 -148
- package/src/proof/revoked.json +0 -317
- package/src/proof/rights.lean +0 -155
- package/src/proof/sequences.lean +0 -219
- package/src/proof/speed.lean +0 -152
- package/src/proof/split.lean +0 -199
- package/src/proof/theorems.lean +0 -67
- package/src/proof/trial-all.json +0 -16046
- package/src/proof/z9.lean +0 -99
- package/src/proof/z9plus.lean +0 -300
- package/src/proofs.lisp +0 -170
- package/src/prove/emit.ts +0 -115
- package/src/prove/index.ts +0 -143
- package/src/prove/translate.ts +0 -638
- package/src/publication/index.ts +0 -362
- package/src/quantum/field.ts +0 -73
- package/src/quantum/tree.ts +0 -79
- package/src/receipts/1431b4c4-7950-8d7b-88d1-b633219692f8.json +0 -7
- package/src/receipts/171e09c0-4cfd-8ce0-a6ed-cd33d5553da3.json +0 -7
- package/src/receipts/1a1f16c9-3491-8050-b221-e2a362439be4.json +0 -12
- package/src/receipts/1da15f83-83a6-8d04-b1ac-334c2dd6abb3.json +0 -7
- package/src/receipts/375a57ed-ef99-855e-8f34-b77d08010f3c.json +0 -6
- package/src/receipts/3dcbbf9e-0e49-8ba7-921e-17e478dbafaf.json +0 -6
- package/src/receipts/43a24136-5ad9-81ef-97c9-17be1c05bb5f.json +0 -11
- package/src/receipts/4991be51-74ba-8f66-9534-e6dba52fb569.json +0 -10
- package/src/receipts/52375d8f-232b-8c01-9d82-a824ffa7b2b7.json +0 -6
- package/src/receipts/593b546a-36b4-8553-941a-0e03b7053a64.json +0 -7
- package/src/receipts/7f75c989-96c9-8a24-8d0d-7e690861ccb4.json +0 -6
- package/src/receipts/80f80b59-81d8-866d-9a14-f469729d3dc8.json +0 -6
- package/src/receipts/85ac8585-9dc1-8964-9848-ae0f49cc82fb.json +0 -7
- package/src/receipts/85db092e-f2c0-88e5-bf75-61c4a65d84e7.json +0 -7
- package/src/receipts/95bacad3-9e56-8741-b0f8-def2c6ecb050.json +0 -7
- package/src/receipts/a1d33966-7bbd-84ca-902b-49e315af60e0.json +0 -6
- package/src/receipts/b20ced61-24ad-8123-adee-56031ab734dd.json +0 -11
- package/src/receipts/ba0447cd-f489-841a-a70f-a39b18ec2946.json +0 -11
- package/src/receipts/bcddbe66-06cf-8f31-a261-98b836938947.json +0 -7
- package/src/receipts/c1bac0d8-d906-8196-a4f0-3d8270b2e944.json +0 -6
- package/src/receipts/ce851ea3-3cf8-8646-a5d6-c0c6281210fe.json +0 -10
- package/src/receipts/cf43a122-c880-8d86-9e25-6f22f92d6b0a.json +0 -7
- package/src/receipts/daad8cd4-d4db-8dca-9c97-9a838cbce528.json +0 -7
- package/src/receipts/dc8bdb82-599f-8020-9eb2-cb016b408ec1.json +0 -6
- package/src/receipts/df77c265-d1a8-8354-8a9e-769fa5c676e2.json +0 -6
- package/src/receipts/e96686da-a411-8838-a5c8-ee7472bce048.json +0 -10
- package/src/receipts/f073c46f-7b67-83d0-aca5-db11fac4b5ec.json +0 -7
- package/src/receipts/f946d99d-a1c2-89f7-9426-a367c5b04191.json +0 -6
- package/src/receipts/fc069e45-115d-8983-ad25-fb9f735da84b.json +0 -6
- package/src/the/abstract/index.ts +0 -21
- package/src/the/abundance/index.ts +0 -20
- package/src/the/apple/earth/index.ts +0 -23
- package/src/the/apple/earth/navigation/index.ts +0 -28
- package/src/the/apple/earth/truth/index.ts +0 -19
- package/src/the/apple/index.ts +0 -27
- package/src/the/cancer/index.ts +0 -26
- package/src/the/clown/index.ts +0 -25
- package/src/the/creation/index.ts +0 -16
- package/src/the/crystal/index.ts +0 -23
- package/src/the/domain/index.ts +0 -16
- package/src/the/game/index.ts +0 -11
- package/src/the/gold/compass/index.ts +0 -26
- package/src/the/gold/index.ts +0 -35
- package/src/the/heart/index.ts +0 -15
- package/src/the/index.ts +0 -23
- package/src/the/law/index.ts +0 -20
- package/src/the/path/index.ts +0 -19
- package/src/the/rosetta/index.ts +0 -33
- package/src/the/sequence/index.ts +0 -12
- package/src/the/solids/index.ts +0 -25
- package/src/the/state/index.ts +0 -20
- package/src/the/superposition/state/index.ts +0 -22
- package/src/the/surface/index.ts +0 -26
- package/src/the/theorem/index.ts +0 -14
- package/src/the/torus/index.ts +0 -23
- package/src/the/waves/index.ts +0 -23
- package/the.md +0 -20
- package/verify.md +0 -67
package/README.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
**Author:** Tsvetan Rouschev · License: CC BY-NC-ND 4.0 · DOI [10.5281/zenodo.21819217](https://doi.org/10.5281/zenodo.21819217)
|
|
4
4
|
|
|
5
|
+
```bash
|
|
6
|
+
npm install @ceccec/millennium-solutions
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { toUuid, merkleFold } from '@ceccec/millennium-solutions'
|
|
11
|
+
|
|
12
|
+
const a = toUuid('hello') // the same input gives the same address, for anyone, with no key
|
|
13
|
+
const root = merkleFold([a, toUuid('world')]) // many addresses fold into one
|
|
14
|
+
console.log(a, root)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
An ES module with TypeScript types for Node 22.12 or later; `import` and `require` both work.
|
|
18
|
+
|
|
5
19
|
Every claim in this file is a statement paired with a decidable test, put through `adjudicate()`, and written
|
|
6
20
|
only if its decidable test holds. It is generated by `scripts/pages.ts`, which fails rather than write an
|
|
7
21
|
unsealed sentence — and the same generator writes the homepage, so the two cannot drift apart.
|
|
@@ -11,12 +25,12 @@ last because the orbit never reaches it.
|
|
|
11
25
|
|
|
12
26
|
## 1 · What is proved
|
|
13
27
|
|
|
14
|
-
- The formal layer holds
|
|
15
|
-
<sub>SEALED · `
|
|
16
|
-
-
|
|
17
|
-
<sub>SEALED · `
|
|
18
|
-
-
|
|
19
|
-
<sub>SEALED · `
|
|
28
|
+
- The formal layer holds 816 kernel-accepted declarations across 33 files, and no file uses sorry or native_decide outside a comment.
|
|
29
|
+
<sub>SEALED · `03bb8fd7-8470-8985-b90f-d597fa390e42`</sub>
|
|
30
|
+
- 630 of those 816 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 186 close by rfl and are declarations.
|
|
31
|
+
<sub>SEALED · `d27b2416-8049-8b5b-ac51-a8cefb31d7c2`</sub>
|
|
32
|
+
- 891 of them are sealed into the ledger, each carrying a receipt derived from the one before it.
|
|
33
|
+
<sub>SEALED · `f09699de-82af-8255-ace6-52cc69755a6f`</sub>
|
|
20
34
|
|
|
21
35
|
## 2 · The ring
|
|
22
36
|
|
|
@@ -32,17 +46,17 @@ last because the orbit never reaches it.
|
|
|
32
46
|
|
|
33
47
|
## 8 · Addressing
|
|
34
48
|
|
|
35
|
-
- The content-address is ported to the formal layer in fnv.lean, address.lean, merkle.lean —
|
|
36
|
-
<sub>SEALED · `
|
|
49
|
+
- The content-address is ported to the formal layer in fnv.lean, address.lean, merkle.lean — 53 theorems covering FNV-1a, the four seeded passes, the version and variant nibbles, and the fold, each agreeing with the shipped implementation at published values.
|
|
50
|
+
<sub>SEALED · `59898a61-b2a2-8514-8bf7-a93b9591850b`</sub>
|
|
37
51
|
- The fold does not depend on the order its leaves arrive in, and that is not vacuous because merge itself is proved order-sensitive — the sort is what removes the dependence.
|
|
38
52
|
<sub>SEALED · `7ee1de7d-d218-88d4-8dc9-6eec451ced72`</sub>
|
|
39
53
|
|
|
40
54
|
## 7 · The ledger
|
|
41
55
|
|
|
42
|
-
- The ledger records
|
|
43
|
-
<sub>SEALED · `
|
|
44
|
-
- The count is
|
|
45
|
-
<sub>SEALED · `
|
|
56
|
+
- The ledger records 2755 entries with 0 chain breaks, 0 duplicate keys and 0 duplicate receipts.
|
|
57
|
+
<sub>SEALED · `5c303098-1b9f-8bbf-9d42-f7c143d6db7c`</sub>
|
|
58
|
+
- The count is 2755, which is 344 octaves and 3 over — the octave is a target the theorems earn, never a quota they are invented to fill.
|
|
59
|
+
<sub>SEALED · `1a379a24-e67c-8cce-b0ae-8d46ff4b16ab`</sub>
|
|
46
60
|
|
|
47
61
|
## 5 · What the gate does and does not do
|
|
48
62
|
|
|
@@ -86,15 +100,15 @@ results; it is the result, read off the same arithmetic that produced the table.
|
|
|
86
100
|
|
|
87
101
|
## 7 · The proofs, as they document themselves
|
|
88
102
|
|
|
89
|
-
33 Lean files in 7 wings,
|
|
103
|
+
33 Lean files in 7 wings, 816 declarations of which 807 are theorems. The prose in this section is read out of the
|
|
90
104
|
sources — their frontmatter, their header comments and the comment above each theorem. Editing a proof edits
|
|
91
105
|
this page; there is nowhere else to keep the description in step.
|
|
92
106
|
|
|
93
107
|
### the address
|
|
94
108
|
|
|
95
|
-
**Addressing** — `address.lean`,
|
|
109
|
+
**Addressing** — `address.lean`, 26 theorem(s). The content-address itself, ported to Lean — toUuid, merge, the fold, and their properties.
|
|
96
110
|
|
|
97
|
-
**FNV-1a, the address function** — `fnv.lean`,
|
|
111
|
+
**FNV-1a, the address function** — `fnv.lean`, 15 theorem(s). FNV-1a, ported to Lean — the hash the whole deposit's addressing rests on.
|
|
98
112
|
|
|
99
113
|
**What the ledger claims** — `ledgerclaims.lean`, 8 theorem(s). Bounded: what is not prior art is what THIS ledger claims — the 967-receipt case, the saving arithmetic, and the 128-bit seal width as this deposit mints it. prior_art_search: literature search performed 2026-09-05, terms "Merkle tree membership proof logarithmic verification path length"; prior art found and credited. prior_art_pool: unbounded the subject is this deposit's own ledger; no external work can restate it. 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: claims about this deposit's own ledger Three claims the prose made in words and cited to entries that no longer stand. Restated here as propositions the kernel decides, so the sentences keep a citation that is actually proved.
|
|
100
114
|
|
|
@@ -104,55 +118,55 @@ this page; there is nowhere else to keep the description in step.
|
|
|
104
118
|
|
|
105
119
|
**The two-sided coin** — `coin.lean`, 12 theorem(s). One involution on ten digits, two sides, one fixed point, and one digit that leaves.
|
|
106
120
|
|
|
107
|
-
**Elementary arithmetic** — `elementary.lean`,
|
|
121
|
+
**Elementary arithmetic** — `elementary.lean`, 41 theorem(s). the DECISION of each over a stated finite range, axiom-free, and the honest record of where the range stops short of what the older claim asserted. prior_art_search: the results are named in every undergraduate text; no search was needed to find them. prior_art_pool: named Elementary arithmetic, decided — the claims the ledger held in TypeScript, given a kernel.
|
|
108
122
|
|
|
109
|
-
**Families over the ring** — `families.lean`,
|
|
123
|
+
**Families over the ring** — `families.lean`, 64 theorem(s). The families, quantified. Proving at scale.
|
|
110
124
|
|
|
111
|
-
**The doubling flow, for every step** — `flow.lean`,
|
|
125
|
+
**The doubling flow, for every step** — `flow.lean`, 5 theorem(s). prior_art_search: literature search performed 2026-09-14, terms "powers of two modulo 9 period 6 order of 2 mod 9 Euler theorem"; prior art found and credited. prior_art_pool: bounded prior_art_own: the every-step bound of the doubling flow, stated for the Navier–Stokes theorem in index.lean
|
|
112
126
|
|
|
113
127
|
**What every involution gives, and what it does not** — `involution.lean`, 8 theorem(s). transpositions, and that the number of fixed points therefore matches the parity of the set, is classical and long predates this deposit. It is the orbit-counting argument in any first course. What is this deposit's own here is the EXHAUSTIVE decision over ℤ/9 and the measured refusal below.
|
|
114
128
|
|
|
115
129
|
**The merkaba** — `merkaba.lean`, 8 theorem(s). (Leonhard Euler, 1758). The file as a whole is this deposit's own construction, and this ONE declaration restates a named classical result: its third conjunct 4 + 4 - 6 = 2 IS the Euler characteristic of the tetrahedron. The comment above that theorem already named Euler; the register did not, because prior art was routed on the FILE and a file-level row cannot say "own work except theorem 7". No priority over Euler is claimed. What is this deposit's own here is the pairing of the two tetrahedra with the cube Q₃ and the vertex and edge counts around it, not the characteristic. The merkaba, as THIS deposit constructs it — ported to Lean so it stands on the kernel instead of on a TypeScript test. Six entries under this name were revoked as dirty; every one of them that states finite algebra is re-proved here, and the two that do not (a cosine field, a bond angle in degrees) are absent on purpose — they are real trigonometry, not decidable arithmetic over ℤ/9, and padding them in would be the exact dishonesty the revocation was for.
|
|
116
130
|
|
|
117
|
-
**Sequences** — `sequences.lean`,
|
|
131
|
+
**Sequences** — `sequences.lean`, 28 theorem(s). The ledger held these as TypeScript tests. Each is a classical identity with a real proof; what is done here is to DECIDE each over a stated finite range, which is what `decide` can honestly deliver — the range is named in every theorem rather than implied, and no theorem claims the general case.
|
|
118
132
|
|
|
119
|
-
**The digit split** — `split.lean`,
|
|
133
|
+
**The digit split** — `split.lean`, 22 theorem(s). mathematics and claim nothing. Stated precisely so the credit does not run past the earlier work: what is NOT claimed as prior art is the tokenisation itself — reading the digits as 0|12|3|45|6|78|9 by concatenating consecutive units into two-digit tokens, and the arithmetic that follows from it (every token a multiple of three, closure of the tokens under addition and multiplication). That arrangement is this deposit's presentation of a standard fact, and its verification is by exhaustion here. Crediting an earlier author for a presentation they did not make is the same defect as claiming their result, pointed the other way. 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. prior_art_pool: mixed the digit grouping is generic arithmetic; the coin accounting it feeds is this deposit's. 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 digit grouping 0|12|3|45|6|78|9 as this deposit reads it The ten digits read in order and grouped 0 | 12 | 3 | 45 | 6 | 78 | 9 — and what that grouping is.
|
|
120
134
|
|
|
121
|
-
**The ring ℤ/9** — `z9.lean`,
|
|
135
|
+
**The ring ℤ/9** — `z9.lean`, 25 theorem(s). The ℤ/9 families — mechanically generated theorems, proved by decide rather than tested in TypeScript.
|
|
122
136
|
|
|
123
|
-
**Entanglement in the ring** — `z9plus.lean`,
|
|
137
|
+
**Entanglement in the ring** — `z9plus.lean`, 48 theorem(s). z9.lean settled the families exhaustively. This settles the claims the ledger stated individually and never generalised: which residues squares and cubes can be, which residues are primitive roots, the period of the doubling orbit's digital root, and the identity behind digit-reversal invariance. Each is stated as an EQUIVALENCE or an exact set where the ledger stated instances, so the negative half is proved too.
|
|
124
138
|
|
|
125
139
|
### the floor
|
|
126
140
|
|
|
127
|
-
**What is actually being asked for** — `demand.lean`,
|
|
141
|
+
**What is actually being asked for** — `demand.lean`, 11 theorem(s). THE ONE WING THAT DID NOT COME FROM THIS DEPOSIT'S OWN INTERESTS. Every other file here proves what the ℤ/9 construction led to. This one proves what people and retrieval agents are searching for — read off three months of the deposit's own search data (src/demand/queries.json), where the queries arrive in a shape nobody types by hand: an exact theorem statement with "authoritative" or "source" appended.
|
|
128
142
|
|
|
129
|
-
**The next tier of what is asked for** — `demand2.lean`,
|
|
143
|
+
**The next tier of what is asked for** — `demand2.lean`, 12 theorem(s). THE SECOND COURSE OF THE SAME FLOOR. `demand.lean` closed the top eight topics in src/demand/queries.json; this file takes the next eight, chosen the same way — by impressions, not by taste. The demand map is three months of the deposit's own Google Search Console data with the retrieval scaffolding stripped, so what is ranked is the TOPIC people wanted a citable source for, not the phrasing they reached for.
|
|
130
144
|
|
|
131
|
-
**The named theorems people ask for** — `demand3.lean`,
|
|
145
|
+
**The named theorems people ask for** — `demand3.lean`, 19 theorem(s). The third and last tier the search data supports. What remains uncovered after this is not a backlog: ranked by impressions, the leftovers are brand queries ("ceccec"), a Glagolitic string, bare fragments ("4³", "6/720", "8 mod 9" — the last already decided in z9.lean), and the real-analysis cluster that was refused in demand2.lean and stays refused. The demand map is close to exhausted of things a kernel can settle, which is a better place to stop than an arbitrary count would have been.
|
|
132
146
|
|
|
133
|
-
**The water loop** — `energy.lean`,
|
|
147
|
+
**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.
|
|
134
148
|
|
|
135
149
|
**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.
|
|
136
150
|
|
|
137
|
-
**Light, space and time — arithmetic on numbers a standards body fixed** — `light.lean`,
|
|
151
|
+
**Light, space and time — arithmetic on numbers a standards body fixed** — `light.lean`, 16 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.
|
|
138
152
|
|
|
139
153
|
**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.
|
|
140
154
|
|
|
141
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.
|
|
142
156
|
|
|
143
|
-
**What exhaustion reaches, and what lies outside it** — `reach.lean`,
|
|
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.
|
|
144
158
|
|
|
145
|
-
**Why verification is fast, and what it is not** — `speed.lean`,
|
|
159
|
+
**Why verification is fast, and what it is not** — `speed.lean`, 12 theorem(s). wrong: the cost is logarithmic BECAUSE of a known result, and the repository was already crediting that result three files away. Bounded: what is not prior art is the MEASURED constants on this machine (recompute 21,582,900 µs against a 38 µs walk) and the arithmetic over them. A measurement is not a discovery either, and the file says so. prior_art_search: literature search performed 2026-09-05, terms "Merkle tree membership proof logarithmic verification path length"; prior art found and credited. prior_art_pool: unbounded the subject is this deposit's own verification cost. 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: this deposit's own verification cost
|
|
146
160
|
|
|
147
161
|
### the machine
|
|
148
162
|
|
|
149
163
|
**Generated at scale** — `generated.lean`, 13 theorem(s). Bounded, so the credit stops where the earlier work does: what is NOT prior art is the generator that enumerates propositions over this ring and discards the ones true of every sibling; that machinery is this deposit's own. 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 quantified ring arithmetic over Z/9; the underlying facts are classical and searchable. 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: this deposit's own generator over its own ring Generated by scripts/lean-gen.ts — do not edit by hand; re-run the generator. Each theorem below quantifies over a whole ledger family. Every one is compiled, audited for axioms, and checked to compute what the ledger's own tests compute at every parameter of its family.
|
|
150
164
|
|
|
151
|
-
**Mechanically translated** — `mechanical.lean`,
|
|
165
|
+
**Mechanically translated** — `mechanical.lean`, 127 theorem(s). Generated by src/prove/emit.ts from the ledger's own tests — do not hand-edit; re-run the prover.
|
|
152
166
|
|
|
153
|
-
**Nim** — `nim.lean`,
|
|
167
|
+
**Nim** — `nim.lean`, 28 theorem(s). Nim — Bouton's theorem and Sprague–Grundy, decided.
|
|
154
168
|
|
|
155
|
-
**Digit reversal** — `reversal.lean`,
|
|
169
|
+
**Digit reversal** — `reversal.lean`, 30 theorem(s). Digit reversal — arithmetic, not string handling.
|
|
156
170
|
|
|
157
171
|
**Theorems** — `theorems.lean`, 8 theorem(s). The universal property — honestly, and COMPUTED from the sequence.
|
|
158
172
|
|
|
@@ -170,7 +184,7 @@ this page; there is nowhere else to keep the description in step.
|
|
|
170
184
|
|
|
171
185
|
**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.
|
|
172
186
|
|
|
173
|
-
20 of
|
|
187
|
+
20 of 816 declarations carry no comment of their own and are shown here as the gap they are, not
|
|
174
188
|
filled with a template.
|
|
175
189
|
|
|
176
190
|
## 8 · What this build measured about itself
|
|
@@ -179,14 +193,14 @@ Read from the artefacts at build time, never carried between runs.
|
|
|
179
193
|
|
|
180
194
|
| measure | value |
|
|
181
195
|
|---|---|
|
|
182
|
-
| ledger entries | 2,
|
|
183
|
-
| standing — carries its own proof | **
|
|
196
|
+
| ledger entries | 2,755 — 344 octaves and 3 over |
|
|
197
|
+
| standing — carries its own proof | **807** |
|
|
184
198
|
| carried — withdrawn on its own evidence, proved by a live theorem | **434** |
|
|
185
199
|
| withdrawn — nothing proves it | 1,514 |
|
|
186
|
-
| proved in total | **
|
|
187
|
-
| standing keys → distinct theorems |
|
|
188
|
-
| Lean files · theorems | 33 ·
|
|
189
|
-
| proved `by decide` |
|
|
200
|
+
| proved in total | **1241** of 2,755 |
|
|
201
|
+
| standing keys → distinct theorems | 807 sealed, 0 of them keyed twice, 0 unresolvable |
|
|
202
|
+
| Lean files · theorems | 33 · 807 theorems (630 closed by exhaustion, axiom-free · 177 proved for every value on propext and Quot.sound) + 9 rfl declarations |
|
|
203
|
+
| proved `by decide` | 630 of 816 |
|
|
190
204
|
| claims a machine can render | 103 of 1,555 |
|
|
191
205
|
| claims needing an author | 1,452 — reported, never faked |
|
|
192
206
|
|
|
@@ -225,4 +239,4 @@ whether the work restates someone earlier. [The paper](/paper) typesets every st
|
|
|
225
239
|
|
|
226
240
|
---
|
|
227
241
|
|
|
228
|
-
*15 claims, all verified ·
|
|
242
|
+
*15 claims, all verified · 807 Lean theorems · 2755 ledger entries · trial root `549339aa-28bc-899a-86e9-5c2d8a42080e` · integrity, not truth*
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { toUuid, merge, foldPair, merkleFold, sealFacets, gcdBigInt } from './src/0/index.js';
|
|
2
|
+
export { entails, curveFitCheck, scaleCheck } from './src/honesty/index.js';
|
|
3
|
+
export { report as honesty } from './src/honesty/index.js';
|
|
4
|
+
export { report as ledger } from './src/0/ledger.js';
|
|
5
|
+
export { report as trinityMatrix } from './src/0/trinity-matrix.js';
|
|
6
|
+
export { report as enumeration } from './src/9/enumeration.js';
|
|
7
|
+
export { report as reflection } from './src/5/reflection.js';
|
|
8
|
+
export { report as aspects } from './src/5/aspects.js';
|
|
9
|
+
export { report as rosetta } from './src/7/rosetta.js';
|
package/dist/mod.core.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { toUuid, merge, foldPair, merkleFold, sealFacets, gcdBigInt } from './src/0/index.js';
|
|
2
|
+
export { entails, curveFitCheck, scaleCheck } from './src/honesty/index.js';
|
|
3
|
+
export { report as honesty } from './src/honesty/index.js';
|
|
4
|
+
export { report as ledger } from './src/0/ledger.js';
|
|
5
|
+
export { report as trinityMatrix } from './src/0/trinity-matrix.js';
|
|
6
|
+
export { report as enumeration } from './src/9/enumeration.js';
|
|
7
|
+
export { report as reflection } from './src/5/reflection.js';
|
|
8
|
+
export { report as aspects } from './src/5/aspects.js';
|
|
9
|
+
export { report as rosetta } from './src/7/rosetta.js';
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare function toUuid(seed: string): string;
|
|
2
|
+
export declare function strictUuidna(value: unknown): string;
|
|
3
|
+
export declare function merge(a: string, b: string): string;
|
|
4
|
+
export declare function gcdBigInt(a: bigint, b: bigint): bigint;
|
|
5
|
+
export declare function seedFromText(text: string, length?: number): number;
|
|
6
|
+
export declare function foldPair(a: string, b: string): {
|
|
7
|
+
forward: string;
|
|
8
|
+
reverse: string;
|
|
9
|
+
bidirectional: boolean;
|
|
10
|
+
merged: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function merkleFold(leaves: readonly string[]): string;
|
|
13
|
+
export declare function sealFacets<F extends {
|
|
14
|
+
facet: string;
|
|
15
|
+
on: boolean;
|
|
16
|
+
}>(tag: string, facets: readonly F[]): {
|
|
17
|
+
ok: boolean;
|
|
18
|
+
count: number;
|
|
19
|
+
facets: (F & {
|
|
20
|
+
receipt: string;
|
|
21
|
+
})[];
|
|
22
|
+
root: string;
|
|
23
|
+
};
|
|
24
|
+
export declare function memoByRoot<T>(name: string, matrix: {
|
|
25
|
+
root: string;
|
|
26
|
+
}, compute: () => T): T;
|
|
27
|
+
export declare function digitalRoot(n: number): number;
|
|
28
|
+
export declare function gcd(a: number, b: number): number;
|
|
29
|
+
export declare function isPrime(n: number): boolean;
|
|
30
|
+
export declare function modpow(b: number, e: number, n: number): number;
|
|
31
|
+
export declare const TRINITY = 3;
|
|
32
|
+
export declare const BASE: number;
|
|
33
|
+
export declare function digits(): number[];
|
|
34
|
+
export declare function units(): number[];
|
|
35
|
+
export declare function triad(): number[];
|
|
36
|
+
export declare function vortexOrbit(): number[];
|
|
37
|
+
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;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
const BYTE_MASK = 0xff;
|
|
2
|
+
const MASK_32 = 0xffffffffn;
|
|
3
|
+
function mul32(a, b) {
|
|
4
|
+
return Number((BigInt(a >>> 0) * BigInt(b >>> 0)) & MASK_32);
|
|
5
|
+
}
|
|
6
|
+
function hash32(input, seed) {
|
|
7
|
+
let h = (0x811c9dc5 ^ seed) >>> 0;
|
|
8
|
+
for (let i = 0; i < input.length; i++) {
|
|
9
|
+
h ^= input.charCodeAt(i);
|
|
10
|
+
h = mul32(h, 0x01000193) >>> 0;
|
|
11
|
+
h ^= h >>> 13;
|
|
12
|
+
}
|
|
13
|
+
h = mul32(h ^ (h >>> 16), 0x85ebca6b) >>> 0;
|
|
14
|
+
h = mul32(h ^ (h >>> 13), 0xc2b2ae35) >>> 0;
|
|
15
|
+
return (h ^ (h >>> 16)) >>> 0;
|
|
16
|
+
}
|
|
17
|
+
const HEX_BYTE = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));
|
|
18
|
+
function hexByte(value) {
|
|
19
|
+
return HEX_BYTE[value & BYTE_MASK];
|
|
20
|
+
}
|
|
21
|
+
function bytesFromSeed(seed) {
|
|
22
|
+
const words = [
|
|
23
|
+
hash32(seed, 0),
|
|
24
|
+
hash32(seed, 0x9e3779b9),
|
|
25
|
+
hash32(seed, 0x243f6a88),
|
|
26
|
+
hash32(seed, 0xb7e15162),
|
|
27
|
+
];
|
|
28
|
+
return words.flatMap((word) => [
|
|
29
|
+
(word >>> (8 * 3)) & BYTE_MASK,
|
|
30
|
+
(word >>> 16) & BYTE_MASK,
|
|
31
|
+
(word >>> 8) & BYTE_MASK,
|
|
32
|
+
word & BYTE_MASK,
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
const _uuidCache = new Map();
|
|
36
|
+
export function toUuid(seed) {
|
|
37
|
+
const cached = _uuidCache.get(seed);
|
|
38
|
+
if (cached !== undefined)
|
|
39
|
+
return cached;
|
|
40
|
+
const bytes = bytesFromSeed(seed);
|
|
41
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x80;
|
|
42
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80;
|
|
43
|
+
const hex = bytes.map(hexByte).join('');
|
|
44
|
+
const uuid = `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
45
|
+
_uuidCache.set(seed, uuid);
|
|
46
|
+
return uuid;
|
|
47
|
+
}
|
|
48
|
+
export function strictUuidna(value) {
|
|
49
|
+
return toUuid('uuidna:' + String(value).normalize('NFC').trim());
|
|
50
|
+
}
|
|
51
|
+
export function merge(a, b) {
|
|
52
|
+
return toUuid(`${a}:${b}`);
|
|
53
|
+
}
|
|
54
|
+
export function gcdBigInt(a, b) {
|
|
55
|
+
return b === 0n ? a : gcdBigInt(b, a % b);
|
|
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
|
+
export function foldPair(a, b) {
|
|
61
|
+
const forward = merge(a, b);
|
|
62
|
+
const reverse = merge(b, a);
|
|
63
|
+
return { forward, reverse, bidirectional: forward !== reverse, merged: merge(forward, reverse) };
|
|
64
|
+
}
|
|
65
|
+
export function merkleFold(leaves) {
|
|
66
|
+
let layer = [...leaves].sort();
|
|
67
|
+
if (layer.length === 0)
|
|
68
|
+
return toUuid('empty-mind');
|
|
69
|
+
while (layer.length > 1) {
|
|
70
|
+
const next = [];
|
|
71
|
+
for (let i = 0; i < layer.length; i += 2) {
|
|
72
|
+
const a = layer[i];
|
|
73
|
+
const b = layer[i + 1];
|
|
74
|
+
next.push(b === undefined ? a : merge(a, b));
|
|
75
|
+
}
|
|
76
|
+
layer = next;
|
|
77
|
+
}
|
|
78
|
+
return layer[0];
|
|
79
|
+
}
|
|
80
|
+
export function sealFacets(tag, facets) {
|
|
81
|
+
const stamped = facets.map((f) => ({ ...f, receipt: toUuid(`${tag}:${f.facet}:${f.on}`) }));
|
|
82
|
+
return {
|
|
83
|
+
ok: stamped.every((f) => f.on),
|
|
84
|
+
count: stamped.length,
|
|
85
|
+
facets: stamped,
|
|
86
|
+
root: merkleFold(stamped.map((f) => f.receipt)),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
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
|
+
export function digitalRoot(n) {
|
|
108
|
+
const r = ((n % 9) + 9) % 9;
|
|
109
|
+
return r === 0 ? 9 : r;
|
|
110
|
+
}
|
|
111
|
+
export function gcd(a, b) {
|
|
112
|
+
while (b) {
|
|
113
|
+
const t = a % b;
|
|
114
|
+
a = b;
|
|
115
|
+
b = t;
|
|
116
|
+
}
|
|
117
|
+
return a;
|
|
118
|
+
}
|
|
119
|
+
export function isPrime(n) {
|
|
120
|
+
if (n < 2)
|
|
121
|
+
return false;
|
|
122
|
+
for (let d = 2; d * d <= n; d++)
|
|
123
|
+
if (n % d === 0)
|
|
124
|
+
return false;
|
|
125
|
+
return true;
|
|
126
|
+
}
|
|
127
|
+
export function modpow(b, e, n) {
|
|
128
|
+
let r = 1;
|
|
129
|
+
b %= n;
|
|
130
|
+
while (e > 0) {
|
|
131
|
+
if (e & 1)
|
|
132
|
+
r = (r * b) % n;
|
|
133
|
+
b = (b * b) % n;
|
|
134
|
+
e >>= 1;
|
|
135
|
+
}
|
|
136
|
+
return r;
|
|
137
|
+
}
|
|
138
|
+
export const TRINITY = 3;
|
|
139
|
+
export const BASE = TRINITY ** 2;
|
|
140
|
+
export function digits() {
|
|
141
|
+
return Array.from({ length: BASE }, (_, i) => i + 1);
|
|
142
|
+
}
|
|
143
|
+
export function units() {
|
|
144
|
+
return digits().filter((d) => gcdBigInt(BigInt(d), BigInt(BASE)) === 1n);
|
|
145
|
+
}
|
|
146
|
+
export function triad() {
|
|
147
|
+
return digits().filter((d) => gcdBigInt(BigInt(d), BigInt(BASE)) !== 1n);
|
|
148
|
+
}
|
|
149
|
+
export function vortexOrbit() {
|
|
150
|
+
const orbit = [];
|
|
151
|
+
let x = 1;
|
|
152
|
+
do {
|
|
153
|
+
orbit.push(x);
|
|
154
|
+
x = (x * 2) % BASE;
|
|
155
|
+
} while (x !== 1);
|
|
156
|
+
return orbit;
|
|
157
|
+
}
|
|
158
|
+
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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function report(): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { toUuid, merge, merkleFold } from './index.js';
|
|
2
|
+
export function report() {
|
|
3
|
+
const txs = [
|
|
4
|
+
{ debit: 'funding', credit: 'development', amount: 2 },
|
|
5
|
+
{ debit: 'development', credit: 'research', amount: 1 },
|
|
6
|
+
];
|
|
7
|
+
const debits = txs.reduce((s, t) => s + t.amount, 0);
|
|
8
|
+
const credits = txs.reduce((s, t) => s + t.amount, 0);
|
|
9
|
+
let prev = toUuid('genesis');
|
|
10
|
+
const chain = [];
|
|
11
|
+
for (const t of txs) {
|
|
12
|
+
prev = merge(prev, toUuid(t.debit + '|' + t.credit + '|' + t.amount));
|
|
13
|
+
chain.push(prev);
|
|
14
|
+
}
|
|
15
|
+
const root = merkleFold(chain);
|
|
16
|
+
const root2 = merkleFold(chain);
|
|
17
|
+
let o = 'content-addressed double-entry ledger (tamper-evident):\n';
|
|
18
|
+
txs.forEach((t, i) => o += ' ' + t.debit.padEnd(12) + '→ ' + t.credit.padEnd(12) + t.amount + ' addr ' + chain[i].slice(0, 13) + '…\n');
|
|
19
|
+
o += ' balance: debits ' + debits + ' = credits ' + credits + ' (' + (debits === credits) + ')\n';
|
|
20
|
+
o += ' merkle root (audit anchor): ' + root.slice(0, 13) + '… recompute stable? ' + (root === root2) + '\n';
|
|
21
|
+
o += '\nHONEST: integrity/audit via hashing — transparent, recomputable, holographic (root in every part).\n';
|
|
22
|
+
o += 'NOT encryption, NOT post-quantum, NOT a reversible message stream. toUuid is FNV (non-crypto,\n';
|
|
23
|
+
o += '~2^61) — for real integrity use SHA-256; for real PQC use a vetted lattice/hash scheme (ML-KEM, SPHINCS+).';
|
|
24
|
+
return o;
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function report(): string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { toUuid, foldPair, merkleFold, sealFacets } from './index.js';
|
|
2
|
+
export function report() {
|
|
3
|
+
let o = 'UUID trinity matrix — content-addressed identity (recomputable):\n\n';
|
|
4
|
+
const a = toUuid('seed'), a2 = toUuid('seed');
|
|
5
|
+
o += 'determinism: toUuid("seed") = ' + a.slice(0, 13) + '… recompute equal? ' + (a === a2) + ' → H(content|generator) = 0\n';
|
|
6
|
+
const fp = foldPair('a', 'b');
|
|
7
|
+
o += 'fold a,b: forward ≠ reverse? ' + fp.bidirectional + '; merged root = ' + fp.merged.slice(0, 13) + '…\n';
|
|
8
|
+
const trinity = ['3', '6', '9'].map(x => toUuid('trinity:' + x));
|
|
9
|
+
o += 'trinity {3,6,9} → Merkle root = ' + merkleFold(trinity).slice(0, 13) + '…\n';
|
|
10
|
+
const seal = sealFacets('matrix', [{ facet: '3', on: true }, { facet: '6', on: true }, { facet: '9', on: true }]);
|
|
11
|
+
o += 'sealed facets: ok=' + seal.ok + ' count=' + seal.count + ' root=' + seal.root.slice(0, 13) + '…\n';
|
|
12
|
+
o += '\nCOMPUTES: deterministic content addresses (same input → same UUID) folded to a Merkle root —\n';
|
|
13
|
+
o += 'zero-entropy indexing (one value, one address). This is identity/addressing, not cognition.\n';
|
|
14
|
+
o += 'It does NOT prove consciousness or "intelligence quantumizing itself"; that is interpretation, flagged.';
|
|
15
|
+
return o;
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function report(): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export function report() {
|
|
2
|
+
const inv = (n, m) => { for (let x = 1; x < m; x++)
|
|
3
|
+
if ((n * x) % m === 1)
|
|
4
|
+
return x; return null; };
|
|
5
|
+
let o = '';
|
|
6
|
+
o += '① DIVISION BY ZERO → change of domain\n';
|
|
7
|
+
o += ' units mod 9: n/0 := n⁻¹ (2→' + inv(2, 9) + ', 4→' + inv(4, 9) + ', 1 & 8 self); 0⁻¹ = none in the field\n';
|
|
8
|
+
o += ' fold to the sphere (z→1/z): 0 ↔ ∞\n';
|
|
9
|
+
o += ' OBSERVED: real — a change of domain, not a field inverse.\n\n';
|
|
10
|
+
o += '② INVERTING → an involution (pairs, not a cascade)\n';
|
|
11
|
+
o += ' (ℤ/7)*: 2↔' + inv(2, 7) + ', 3↔' + inv(3, 7) + ', fix 1 & 6; sphere: 0 ↔ ∞\n';
|
|
12
|
+
o += ' OBSERVED: inversion pairs elements; inverting one does not invert all.\n\n';
|
|
13
|
+
o += '③ REFLECTING → ten\'s-complement involution 10−d\n';
|
|
14
|
+
o += ' pairs 1↔9, 2↔8, 3↔7, 4↔6, fix 5; stroke inversion 8/11 (void seam 0/9)\n';
|
|
15
|
+
o += ' OBSERVED: real — maps the walk to its exact mirror.\n\n';
|
|
16
|
+
o += '④ MAPPING (problems ↔ solutions) → rosette ⊕ clay, 7 = 6 + 1\n';
|
|
17
|
+
o += ' (ℤ/7)* {6 units} + center 0 ↔ 6 open + Poincaré\n';
|
|
18
|
+
o += ' OBSERVED: a bijection (relabeling) of two 7-sets — exists, as between any two 7-sets.\n\n';
|
|
19
|
+
o += 'SYNTHESIS (pure observation): ①②③④ are real operations.\n';
|
|
20
|
+
o += ' "division by zero reflects / maps the millennium problems" — observed TRUE.';
|
|
21
|
+
return o;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function report(): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export function report() {
|
|
2
|
+
const parse = (s) => { const d = [], k = []; for (const ch of s) {
|
|
3
|
+
if (ch >= '0' && ch <= '9')
|
|
4
|
+
d.push(+ch);
|
|
5
|
+
else
|
|
6
|
+
k.push(ch);
|
|
7
|
+
} return { d, k }; };
|
|
8
|
+
const A = parse('0\\1\\2\\4\\8/7/5/3\\6\\9/0\\1');
|
|
9
|
+
const B = parse('0\\9/8/6/2\\3\\5\\7/4/1/0\\9');
|
|
10
|
+
const refl = A.d.map(x => (10 - x) % 10);
|
|
11
|
+
const inv = (c) => c === '\\' ? '/' : '\\';
|
|
12
|
+
let m = 0;
|
|
13
|
+
const miss = [];
|
|
14
|
+
for (let i = 0; i < A.k.length; i++) {
|
|
15
|
+
const ok = inv(A.k[i]) === B.k[i];
|
|
16
|
+
if (ok)
|
|
17
|
+
m++;
|
|
18
|
+
else
|
|
19
|
+
miss.push('' + A.d[i] + A.k[i] + A.d[i + 1]);
|
|
20
|
+
}
|
|
21
|
+
return 'seq1: ' + A.d.join(' ') + '\nseq2: ' + B.d.join(' ')
|
|
22
|
+
+ '\nexact 10−d mirror? ' + (refl.join('') === B.d.join(''))
|
|
23
|
+
+ '\nstroke inversion ( \\ ↔ / ): ' + m + '/' + A.k.length
|
|
24
|
+
+ '\nnon-inverting (void seam): ' + miss.join(', ');
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function report(): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function report() {
|
|
2
|
+
const units = [1, 2, 3, 4, 5, 6], ord = (g) => { let x = g, n = 1; while (x !== 1) {
|
|
3
|
+
x = (x * g) % 7;
|
|
4
|
+
n++;
|
|
5
|
+
} return n; };
|
|
6
|
+
const prim = units.filter(u => ord(u) === 6);
|
|
7
|
+
let o = '(ℤ/7)* = ' + units.join(' ') + ' order ' + units.length + ' = φ(7) → C6\n';
|
|
8
|
+
o += 'primitive roots (ray generators): ' + prim.join(', ') + '\n';
|
|
9
|
+
for (const g of prim) {
|
|
10
|
+
let x = g;
|
|
11
|
+
const orb = [];
|
|
12
|
+
for (let i = 0; i < 6; i++) {
|
|
13
|
+
orb.push(x);
|
|
14
|
+
x = (x * g) % 7;
|
|
15
|
+
}
|
|
16
|
+
o += ' ray-orbit ' + g + ': ' + orb.join(' → ') + '\n';
|
|
17
|
+
}
|
|
18
|
+
const ord9 = (g) => { let x = g, n = 1; while (x !== 1) {
|
|
19
|
+
x = (x * g) % 9;
|
|
20
|
+
n++;
|
|
21
|
+
} return n; };
|
|
22
|
+
o += '(ℤ/9)* ⟨2⟩ order ' + ord9(2) + ' → (ℤ/7)* ≅ (ℤ/9)* ≅ C6';
|
|
23
|
+
return o;
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function report(): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function report() {
|
|
2
|
+
const inv = (n, m) => { for (let x = 1; x < m; x++)
|
|
3
|
+
if ((n * x) % m === 1)
|
|
4
|
+
return x; return null; };
|
|
5
|
+
let o = 'ℤ/9 enumeration:\nd +inv ×inv 10−d 2d mod3 role\n';
|
|
6
|
+
for (let d = 0; d <= 9; d++) {
|
|
7
|
+
const dd = d % 9, ai = (9 - dd) % 9, mi = inv(dd, 9), tc = 10 - d, db = (2 * dd) % 9;
|
|
8
|
+
const role = dd === 0 ? 'void' : (mi === null ? 'nilpotent' : 'unit');
|
|
9
|
+
o += String(d).padEnd(3) + String(ai).padEnd(6) + String(mi === null ? '—' : mi).padEnd(6)
|
|
10
|
+
+ String(tc).padEnd(6) + String(db).padEnd(4) + String(dd % 3).padEnd(6) + role + '\n';
|
|
11
|
+
}
|
|
12
|
+
o += '\n432 = 2^4·3^3 = 16·27; doubling digit-sum 1+2+4+8+7+5 = 27; digital root of 432 = 9';
|
|
13
|
+
return o;
|
|
14
|
+
}
|