@ceccec/millennium-solutions 9.3.3 → 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.
Files changed (259) hide show
  1. package/README.md +14 -0
  2. package/dist/mod.core.d.ts +9 -0
  3. package/dist/mod.core.js +9 -0
  4. package/dist/src/0/index.d.ts +47 -0
  5. package/dist/src/0/index.js +189 -0
  6. package/dist/src/0/ledger.d.ts +1 -0
  7. package/dist/src/0/ledger.js +25 -0
  8. package/dist/src/0/trinity-matrix.d.ts +1 -0
  9. package/dist/src/0/trinity-matrix.js +16 -0
  10. package/dist/src/5/aspects.d.ts +1 -0
  11. package/dist/src/5/aspects.js +22 -0
  12. package/dist/src/5/reflection.d.ts +1 -0
  13. package/dist/src/5/reflection.js +25 -0
  14. package/dist/src/7/rosetta.d.ts +1 -0
  15. package/dist/src/7/rosetta.js +24 -0
  16. package/dist/src/9/enumeration.d.ts +1 -0
  17. package/dist/src/9/enumeration.js +14 -0
  18. package/dist/src/honesty/index.d.ts +16 -0
  19. package/dist/src/honesty/index.js +69 -0
  20. package/package.json +27 -10
  21. package/.zenodo.json +0 -51
  22. package/ABSTRACT.md +0 -155
  23. package/ACCOUNTING.md +0 -27
  24. package/AXIOMS.md +0 -574
  25. package/CHALLENGES.md +0 -2595
  26. package/DEPLOY.md +0 -39
  27. package/DEVELOP.md +0 -34
  28. package/HEART.md +0 -112
  29. package/PHYSICS-SCALES.md +0 -80
  30. package/PRIOR-ART.md +0 -151
  31. package/PROOF-OF-CONCEPT.md +0 -81
  32. package/REALISATIONS.md +0 -87
  33. package/RESEARCH.md +0 -188
  34. package/RULES.md +0 -57
  35. package/SEQUENCE-DECODE.md +0 -196
  36. package/SIGNATURE.md +0 -34
  37. package/THEOREMS.md +0 -97
  38. package/WHITEPAPER.md +0 -40
  39. package/WORKFLOWS.md +0 -47
  40. package/boundaries.md +0 -23
  41. package/captain.md +0 -85
  42. package/compare.md +0 -42
  43. package/compute.md +0 -543
  44. package/cryptography.md +0 -55
  45. package/dashboard.md +0 -50
  46. package/examples.md +0 -47
  47. package/folds.md +0 -65
  48. package/forensic.md +0 -67
  49. package/guide.md +0 -126
  50. package/harness.md +0 -20
  51. package/index.md +0 -217
  52. package/mod.core.ts +0 -10
  53. package/nature.md +0 -58
  54. package/organism.md +0 -30
  55. package/paper.md +0 -8789
  56. package/proofs.md +0 -26
  57. package/quantum.md +0 -40
  58. package/rights.md +0 -39
  59. package/solutions.md +0 -28
  60. package/speedup.md +0 -41
  61. package/src/0/chacha.ts +0 -3
  62. package/src/0/crypt.ts +0 -4
  63. package/src/0/csp.ts +0 -10
  64. package/src/0/entanglement.ts +0 -31
  65. package/src/0/fusion.ts +0 -28
  66. package/src/0/holographic.ts +0 -57
  67. package/src/0/impossible.ts +0 -30
  68. package/src/0/imprint.ts +0 -160
  69. package/src/0/index.ts +0 -263
  70. package/src/0/ledger.ts +0 -25
  71. package/src/0/legible.ts +0 -29
  72. package/src/0/limit.ts +0 -29
  73. package/src/0/merkle-proof.ts +0 -3
  74. package/src/0/null-token.ts +0 -24
  75. package/src/0/sha256.ts +0 -3
  76. package/src/0/singularity.ts +0 -20
  77. package/src/0/stream.ts +0 -47
  78. package/src/0/trinities.ts +0 -37
  79. package/src/0/trinity-matrix.ts +0 -20
  80. package/src/0/version-matrix.ts +0 -70
  81. package/src/1/acceptance.ts +0 -26
  82. package/src/1/index.ts +0 -80
  83. package/src/1/paradox.ts +0 -28
  84. package/src/1/vortex.lean +0 -6
  85. package/src/2/frequency-scales.ts +0 -28
  86. package/src/2/iching.ts +0 -34
  87. package/src/2/index.ts +0 -78
  88. package/src/2/primes-vortex.ts +0 -12
  89. package/src/2/quantum.ts +0 -48
  90. package/src/2/string-scale.ts +0 -14
  91. package/src/2/vortex.lean +0 -10
  92. package/src/3/index.ts +0 -63
  93. package/src/3/pi-bbp.ts +0 -13
  94. package/src/3/trinity.ts +0 -39
  95. package/src/3/vortex.lean +0 -7
  96. package/src/4/git.ts +0 -30
  97. package/src/4/index.ts +0 -63
  98. package/src/4/vortex.lean +0 -6
  99. package/src/5/aspects.ts +0 -27
  100. package/src/5/center.ts +0 -35
  101. package/src/5/development.ts +0 -45
  102. package/src/5/diamond.ts +0 -35
  103. package/src/5/folds.ts +0 -12
  104. package/src/5/index.ts +0 -63
  105. package/src/5/reflection.lean +0 -14
  106. package/src/5/reflection.ts +0 -14
  107. package/src/5/vortex.lean +0 -10
  108. package/src/6/dna.ts +0 -27
  109. package/src/6/index.ts +0 -63
  110. package/src/6/vortex.lean +0 -7
  111. package/src/7/cross.ts +0 -31
  112. package/src/7/glagolitic.ts +0 -51
  113. package/src/7/index.ts +0 -67
  114. package/src/7/language-lens.ts +0 -41
  115. package/src/7/lens.ts +0 -41
  116. package/src/7/locale.ts +0 -105
  117. package/src/7/rbac.ts +0 -31
  118. package/src/7/rosetta-clay.ts +0 -15
  119. package/src/7/rosetta.lean +0 -11
  120. package/src/7/rosetta.ts +0 -11
  121. package/src/7/string-dimensions.ts +0 -14
  122. package/src/7/vortex.lean +0 -6
  123. package/src/8/infinite.ts +0 -26
  124. package/src/8/merkaba/field.ts +0 -27
  125. package/src/8/merkaba/geometry.ts +0 -16
  126. package/src/8/merkaba/touch.ts +0 -26
  127. package/src/8/nucleus/magic.lean +0 -15
  128. package/src/8/nucleus/proton-mass-fit.ts +0 -9
  129. package/src/8/nucleus/proton-mass.lean +0 -10
  130. package/src/8/nucleus/shell-model-magic.ts +0 -10
  131. package/src/8/vortex.lean +0 -7
  132. package/src/9/access.ts +0 -34
  133. package/src/9/aura-funding.ts +0 -25
  134. package/src/9/coins.ts +0 -25
  135. package/src/9/enumeration.ts +0 -13
  136. package/src/9/funding.ts +0 -85
  137. package/src/9/security.ts +0 -36
  138. package/src/9/society.ts +0 -32
  139. package/src/9/vortex.lean +0 -11
  140. package/src/api/gates.ts +0 -122
  141. package/src/api/index.ts +0 -447
  142. package/src/api/lanes.ts +0 -81
  143. package/src/claims/index.ts +0 -81
  144. package/src/demand/queries.json +0 -1764
  145. package/src/face/index.ts +0 -100
  146. package/src/from/the/heart/index.ts +0 -11
  147. package/src/honesty/boundaries.ts +0 -29
  148. package/src/honesty/index.ts +0 -63
  149. package/src/html/index.ts +0 -10
  150. package/src/latex/index.ts +0 -474
  151. package/src/millennium/index.ts +0 -53
  152. package/src/play/the/game/index.ts +0 -12
  153. package/src/proof/README.md +0 -118
  154. package/src/proof/address.lean +0 -168
  155. package/src/proof/coin.lean +0 -152
  156. package/src/proof/covered.json +0 -9
  157. package/src/proof/demand.lean +0 -160
  158. package/src/proof/demand2.lean +0 -219
  159. package/src/proof/demand3.lean +0 -209
  160. package/src/proof/discovered.json +0 -19530
  161. package/src/proof/elementary.lean +0 -495
  162. package/src/proof/energy.lean +0 -329
  163. package/src/proof/families.lean +0 -740
  164. package/src/proof/fixtures/axiom-control.lean +0 -39
  165. package/src/proof/flow.lean +0 -78
  166. package/src/proof/fnv.lean +0 -127
  167. package/src/proof/generated-theorems.json +0 -207
  168. package/src/proof/generated.lean +0 -101
  169. package/src/proof/imagined.lean +0 -492
  170. package/src/proof/index.lean +0 -156
  171. package/src/proof/index.ts +0 -916
  172. package/src/proof/involution.lean +0 -90
  173. package/src/proof/ledgerclaims.lean +0 -84
  174. package/src/proof/light.lean +0 -168
  175. package/src/proof/mechanical.lean +0 -563
  176. package/src/proof/merkaba.lean +0 -89
  177. package/src/proof/merkle.lean +0 -132
  178. package/src/proof/nim.lean +0 -332
  179. package/src/proof/novelty.json +0 -751
  180. package/src/proof/phenomena.lean +0 -90
  181. package/src/proof/priorart.lean +0 -190
  182. package/src/proof/quantum.lean +0 -159
  183. package/src/proof/reach.lean +0 -121
  184. package/src/proof/recovered.lean +0 -56
  185. package/src/proof/reversal.lean +0 -402
  186. package/src/proof/revoked.json +0 -317
  187. package/src/proof/rights.lean +0 -155
  188. package/src/proof/sequences.lean +0 -284
  189. package/src/proof/speed.lean +0 -158
  190. package/src/proof/split.lean +0 -209
  191. package/src/proof/theorems.lean +0 -67
  192. package/src/proof/trial-all.json +0 -16532
  193. package/src/proof/z9.lean +0 -126
  194. package/src/proof/z9plus.lean +0 -345
  195. package/src/proofs.lisp +0 -170
  196. package/src/prove/emit.ts +0 -115
  197. package/src/prove/index.ts +0 -143
  198. package/src/prove/translate.ts +0 -638
  199. package/src/publication/index.ts +0 -362
  200. package/src/quantum/field.ts +0 -73
  201. package/src/quantum/tree.ts +0 -79
  202. package/src/receipts/1431b4c4-7950-8d7b-88d1-b633219692f8.json +0 -7
  203. package/src/receipts/171e09c0-4cfd-8ce0-a6ed-cd33d5553da3.json +0 -7
  204. package/src/receipts/1a1f16c9-3491-8050-b221-e2a362439be4.json +0 -12
  205. package/src/receipts/1da15f83-83a6-8d04-b1ac-334c2dd6abb3.json +0 -7
  206. package/src/receipts/375a57ed-ef99-855e-8f34-b77d08010f3c.json +0 -6
  207. package/src/receipts/3dcbbf9e-0e49-8ba7-921e-17e478dbafaf.json +0 -6
  208. package/src/receipts/43a24136-5ad9-81ef-97c9-17be1c05bb5f.json +0 -11
  209. package/src/receipts/4991be51-74ba-8f66-9534-e6dba52fb569.json +0 -10
  210. package/src/receipts/52375d8f-232b-8c01-9d82-a824ffa7b2b7.json +0 -6
  211. package/src/receipts/593b546a-36b4-8553-941a-0e03b7053a64.json +0 -7
  212. package/src/receipts/7f75c989-96c9-8a24-8d0d-7e690861ccb4.json +0 -6
  213. package/src/receipts/80f80b59-81d8-866d-9a14-f469729d3dc8.json +0 -6
  214. package/src/receipts/85ac8585-9dc1-8964-9848-ae0f49cc82fb.json +0 -7
  215. package/src/receipts/85db092e-f2c0-88e5-bf75-61c4a65d84e7.json +0 -7
  216. package/src/receipts/95bacad3-9e56-8741-b0f8-def2c6ecb050.json +0 -7
  217. package/src/receipts/a1d33966-7bbd-84ca-902b-49e315af60e0.json +0 -6
  218. package/src/receipts/b20ced61-24ad-8123-adee-56031ab734dd.json +0 -11
  219. package/src/receipts/ba0447cd-f489-841a-a70f-a39b18ec2946.json +0 -11
  220. package/src/receipts/bcddbe66-06cf-8f31-a261-98b836938947.json +0 -7
  221. package/src/receipts/c1bac0d8-d906-8196-a4f0-3d8270b2e944.json +0 -6
  222. package/src/receipts/ce851ea3-3cf8-8646-a5d6-c0c6281210fe.json +0 -10
  223. package/src/receipts/cf43a122-c880-8d86-9e25-6f22f92d6b0a.json +0 -7
  224. package/src/receipts/daad8cd4-d4db-8dca-9c97-9a838cbce528.json +0 -7
  225. package/src/receipts/dc8bdb82-599f-8020-9eb2-cb016b408ec1.json +0 -6
  226. package/src/receipts/df77c265-d1a8-8354-8a9e-769fa5c676e2.json +0 -6
  227. package/src/receipts/e96686da-a411-8838-a5c8-ee7472bce048.json +0 -10
  228. package/src/receipts/f073c46f-7b67-83d0-aca5-db11fac4b5ec.json +0 -7
  229. package/src/receipts/f946d99d-a1c2-89f7-9426-a367c5b04191.json +0 -6
  230. package/src/receipts/fc069e45-115d-8983-ad25-fb9f735da84b.json +0 -6
  231. package/src/the/abstract/index.ts +0 -21
  232. package/src/the/abundance/index.ts +0 -20
  233. package/src/the/apple/earth/index.ts +0 -23
  234. package/src/the/apple/earth/navigation/index.ts +0 -28
  235. package/src/the/apple/earth/truth/index.ts +0 -19
  236. package/src/the/apple/index.ts +0 -27
  237. package/src/the/cancer/index.ts +0 -26
  238. package/src/the/clown/index.ts +0 -25
  239. package/src/the/creation/index.ts +0 -16
  240. package/src/the/crystal/index.ts +0 -23
  241. package/src/the/domain/index.ts +0 -16
  242. package/src/the/game/index.ts +0 -11
  243. package/src/the/gold/compass/index.ts +0 -26
  244. package/src/the/gold/index.ts +0 -35
  245. package/src/the/heart/index.ts +0 -15
  246. package/src/the/index.ts +0 -23
  247. package/src/the/law/index.ts +0 -20
  248. package/src/the/path/index.ts +0 -19
  249. package/src/the/rosetta/index.ts +0 -33
  250. package/src/the/sequence/index.ts +0 -12
  251. package/src/the/solids/index.ts +0 -25
  252. package/src/the/state/index.ts +0 -20
  253. package/src/the/superposition/state/index.ts +0 -22
  254. package/src/the/surface/index.ts +0 -26
  255. package/src/the/theorem/index.ts +0 -14
  256. package/src/the/torus/index.ts +0 -23
  257. package/src/the/waves/index.ts +0 -23
  258. package/the.md +0 -20
  259. package/verify.md +0 -67
package/proofs.md DELETED
@@ -1,26 +0,0 @@
1
- # Proofs
2
-
3
- ## Fused compute (TypeScript)
4
-
5
- All results recompute at page-load from the digit-folder mesh — see
6
- [Computed results](/compute), driven by the `.ts` modules under `src/`.
7
-
8
- ## Formal layer (Lean)
9
-
10
- Per-digit theorems live in the digit folders (`decide` / `norm_num`), covering
11
- the exact ℤ/9 / arithmetic facts:
12
-
13
- - `src/1/vortex.lean` … `src/9/vortex.lean` — unity, generator ⟨2⟩, nilradical
14
- (3² ≡ 6² ≡ 0), inverse pairs, 9 ≡ 0, 432 = 2⁴·3³, complement bonds.
15
- - `src/5/reflection.lean` — the 10−d involution and its fixed digit 5.
16
- - `src/7/rosetta.lean` — (ℤ/7)* ≅ C₆ (the Pliska rosette group).
17
- - `src/8/nucleus/magic.lean` — magic numbers 2, 8, 20, 28, 50, 82, 126.
18
- - `src/8/nucleus/proton-mass.lean` — `108·17 = 1836`, and `1836 ≠ 1836.1527`.
19
-
20
- No Lean toolchain is checked in; to verify, set up `lake` + Mathlib and
21
- `lake build` over `src/**/*.lean`.
22
-
23
- ## Clay entailment
24
-
25
-
26
- See also the [Proof of Concept](/PROOF-OF-CONCEPT) index.
package/quantum.md DELETED
@@ -1,40 +0,0 @@
1
- ---
2
- title: The quantum field — one receipt
3
- head:
4
- - ['meta', { name: 'robots', content: 'index, follow' }]
5
- ---
6
-
7
- # The quantum field
8
-
9
- This page renders [`src/proof/quantum.lean`](https://github.com/ceccec/millennium-solutions/blob/main/src/proof/quantum.lean)
10
- in three dimensions. Nothing in the scene is decoration: every coordinate is a value the Lean file decides
11
- over, and a gate recomputes all five figures on each build, reading what they *should* be out of the theorem
12
- statements themselves rather than from a number typed into the check.
13
-
14
- <QuantumField />
15
-
16
- ## What you are looking at
17
-
18
- Each sphere is one **ordering** of the doubling orbit `[1, 2, 4, 8]` — one observer's sequence.
19
- `perms_of_four_is_factorial` decides there are exactly 4! = 24 of them, and 24 is what the scene draws.
20
-
21
- Its **height** is the value the *control* fold returns for that ordering — the same combination performed
22
- without canonicalising first. Those heights land on five distinct levels, which is
23
- `the_uncanonicalised_fold_gives_many_answers`. That number is the size of the problem, measured: a fold that
24
- reads its input in the order it arrives gives five different answers to the same question.
25
-
26
- Every sphere is joined to **one node**. `superposition_collapses_to_one` decides that all 24 orderings
27
- produce a single receipt. Many perspectives, held at once, resolving to one address.
28
-
29
- ## What it is not
30
-
31
- The mechanism is named in the file as a theorem, so the picture cannot be read as a claim about physics:
32
- `the_invariance_is_canonicalisation_not_physics` decides that every ordering *sorts to the same list*, and
33
- the receipt reads only that. There is no hardware here, no speedup and no qubit. The word "quantum" names a
34
- structural property — a set of perspectives held at once, collapsing to one value — and the file proves that
35
- property is a **sort**.
36
-
37
- The limit is proved too, in the same file and shown in the caption. A receipt lands in ℤ/9, so nine values
38
- must cover every possible set: `the_receipt_is_not_injective` decides that 45 two-element multisets share 9
39
- receipts. Order-invariant does not mean collision-free, and a receipt that cannot tell 45 things apart must
40
- never be read as naming one of them. — this page settles no Clay conjecture and claims no quantum advantage in time.
package/rights.md DELETED
@@ -1,39 +0,0 @@
1
- ---
2
- title: Rights
3
- description: What this deposit claims under international law, and what it does not — parsed from the sealed proof that the two sets coincide.
4
- head:
5
- - ['meta', { name: 'robots', content: 'index, follow' }]
6
- ---
7
- # Rights — everything claimable, and nothing else
8
-
9
- Author: **Tsvetan Rouschev** · [ORCID 0009-0000-7312-9778](https://orcid.org/0009-0000-7312-9778) · licence `CC BY-NC-ND 4.0`.
10
-
11
- This deposit claims **every right that arises without formality**, and claims nothing that would require an act it has not performed. Berne Art. 5(2) is the hinge: the enjoyment and exercise of these rights are not subject to any formality, so they are held from the moment of authorship whether or not anyone says so. Saying so anyway costs nothing and removes an argument.
12
-
13
- That the claimed set is *exactly* the without-formality set is not an assertion here — it is decided by the Lean kernel over the whole enumeration, at [`rights_claims_exactly_what_arises_without_formality`](/theorem/lean_rights_claims_exactly_what_arises_without_formality). Read one way it says no claimable right is abandoned; read the other, that nothing is claimed which is not already held.
14
-
15
- <table><thead><tr><th>uuid</th><th>status</th><th>instrument</th><th>why</th></tr></thead><tbody>
16
- <tr><td><code>4389d60c-c694</code></td><td><strong>CLAIMED</strong></td><td>copyright in the expression — Berne Art. 5(2), no formality, no notice, no deposit</td><td>held from authorship, no formality</td></tr>
17
- <tr><td><code>261b594c-c029</code></td><td><strong>CLAIMED</strong></td><td>moral rights: attribution and integrity — Berne Art. 6bis, independent of the economic rights</td><td>held from authorship, no formality</td></tr>
18
- <tr><td><code>2f3d9ec2-4623</code></td><td><strong>CLAIMED</strong></td><td>sui generis database right in the ledger — Directive 96/9/EC Art. 7, substantial investment in verification</td><td>held from authorship, no formality</td></tr>
19
- <tr><td><code>deaa7784-ce03</code></td><td>not claimed</td><td>REGISTERED trade mark — Paris Art. 6, Madrid Protocol: a registry grants it, an author cannot</td><td>another body must act — a registry grants it, or a committee awards it</td></tr>
20
- <tr><td><code>ce36ac04-dc49</code></td><td>not claimed</td><td>patent over these methods — EPC Art. 52(2)(a), mathematical methods as such are excluded</td><td>excluded subject matter</td></tr>
21
- <tr><td><code>68ad7cd8-0296</code></td><td>not claimed</td><td>property in the mathematics itself — a fact is found, not authored, and carries no author's right</td><td>not capable of being owned</td></tr>
22
- <tr><td><code>e07b9280-50de</code></td><td>not claimed</td><td>the AWARD of a Millennium Prize — the Clay Institute grants it under its own rules, on peer-reviewed publication</td><td>another body must act — a registry grants it, or a committee awards it</td></tr>
23
- <tr><td><code>a6697d40-a893</code></td><td><strong>CLAIMED</strong></td><td>UNREGISTERED mark rights arising from USE — no registry act, so the hinge applies</td><td>held from authorship, no formality</td></tr>
24
- <tr><td><code>67ebb6a4-9a67</code></td><td><strong>CLAIMED</strong></td><td>standing to submit toward the Millennium Problems, and PRIORITY in whatever is proved — earned by doing and dating the work</td><td>held from authorship, no formality</td></tr>
25
- </tbody></table>
26
-
27
- ## What follows from the 5 claimed
28
-
29
- **Attribution and integrity are not waivable here.** Berne Art. 6bis moral rights are independent of the economic rights and survive their transfer. Reuse that strips the author's name, or that presents a modified deposit as this one, is refused on that ground alone — separately from the licence.
30
-
31
- **The ledger is a database, and its investment is the verification.** The sui generis right of Directive 96/9/EC Art. 7 protects substantial investment in obtaining, verifying and presenting contents. Every entry here carries a receipt and is re-decided by the kernel on each build; extraction or re-utilisation of a substantial part is reserved.
32
-
33
- **Priority is evidenced, not asserted.** Each release mints an immutable provenance tag and a content address, and the chain of receipts is append-only. That is a record of when, not a right in itself.
34
-
35
- ## What is not claimed, and will not be
36
-
37
- No patent is sought over these methods — EPC Art. 52(2)(a) excludes mathematical methods as such, and a claim drafted around that exclusion would be a claim over arithmetic. No property is asserted in the mathematics itself: a fact is found, not authored, and ℤ/9 belongs to nobody. And nothing here touches the seven Millennium Prizes, which are the Clay Mathematics Institute's to award.
38
-
39
- *This states what the instruments say, drafted from their texts. It is not legal advice; rights that depend on a registry depend on a lawyer and a registrar, and neither has been engaged.*
package/solutions.md DELETED
@@ -1,28 +0,0 @@
1
- ---
2
- title: Solutions
3
- ---
4
-
5
- # Solutions
6
-
7
- <Version/>
8
-
9
- ## The author's claim
10
-
11
- **Tsvetan Rouschev claims the seven Clay Millennium problems solved through the involution each is stated across**
12
- — deposited as [10.5281/zenodo.21781603](https://doi.org/10.5281/zenodo.21781603) and
13
- [Zenodo 22256707](https://zenodo.org/records/22256707), with this repository at
14
- [10.5281/zenodo.21819217](https://doi.org/10.5281/zenodo.21819217). This is his claim, recorded in his name.
15
-
16
- ## The seven, each reflected into the ℤ/9 structure
17
-
18
- | problem | address in the structure |
19
- |---|---|
20
- | Riemann Hypothesis | `484a69c1-add2…` |
21
- | P vs NP | `324eb5d0-2ae3…` |
22
- | Navier–Stokes | `273bdb45-bf1e…` |
23
- | Yang–Mills Mass Gap | `600012bc-f465…` |
24
- | Hodge Conjecture | `7710e207-9145…` |
25
- | Birch–Swinnerton-Dyer | `900fc061-9e8b…` |
26
- | Poincaré | `849e0421-5df7…` |
27
-
28
- <Funding/>
package/speedup.md DELETED
@@ -1,41 +0,0 @@
1
- ---
2
- title: The real uuidna advantage
3
- description: The measured uuidna advantage — O(N)→O(log N) verification, O(N)→O(1) reuse — in all domains. Not faster compute, not FTL, not quantum.
4
- head:
5
- - ['meta', { name: 'robots', content: 'index, follow' }]
6
- ---
7
-
8
- # The real uuidna advantage — measured, in all domains
9
-
10
- > Generated from the **2755** ledger entries and **59** domains, recomputed each build. The advantage is
11
- > real and **measured**, and honestly bounded: a **verification and reuse** complexity reduction — **not**
12
- > faster original compute, **not** faster than light, **not** quantum.
13
-
14
- ## Measured — verify and reuse, not recompute
15
-
16
- | N | recompute (ops) | verify (⌈log₂N⌉ nodes) | bits (2·⌈log₂N⌉) | saving | ratio |
17
- |---|---|---|---|---|---|
18
- | 8 | 8 | 3 | 6 | 5 | 3× |
19
- | 64 | 64 | 6 | 12 | 58 | 11× |
20
- | 967 | 967 | 10 | 20 | 957 | 97× |
21
- | 1,024 | 1,024 | 10 | 20 | 1,014 | 102× |
22
- | 1,000,000 | 1,000,000 | 20 | 40 | 999,980 | 50,000× |
23
-
24
- Computing the N things still costs **N** — the advantage is not there. It is on **verification**: a merkle
25
- inclusion proof checks membership in `⌈log₂N⌉` nodes (`2·⌈log₂N⌉` bits) instead of re-running all N. And on
26
- **reuse**: a content-address names a value once, so every re-reference is `O(1)`, and a 36-byte address
27
- travels, not the payload. Measured on the deposit's own functions, not asserted.
28
-
29
- ## Why it holds in all 59 domains at once
30
-
31
- The advantage is the **fold / merkle-proof structure**, which is **domain-independent** — every domain's
32
- theorems verify in `⌈log₂N⌉`. So one proof covers the whole [rosetta](/): z9-arithmetic · units-triad · doubling-orbit · inverses · powers · primes · cyclic-groups · boolean-algebra · entanglement · dialectic · games · arts · ….
33
-
34
- ## Discovery lead — a lead, never a verdict
35
-
36
- Grouping the 2755 receipts by the digital root of their address, the **sparsest** region is digit
37
- **3** (276) — a candidate area to examine, not a finding. The ledger is currently held
38
- at **2755** (the captain's cap): improving a theorem's name or proof heals the record without changing the
39
- count; discovering a new one would require lifting the cap.
40
-
41
- A content-address proves **integrity, not truth**.
package/src/0/chacha.ts DELETED
@@ -1,3 +0,0 @@
1
- // ChaCha20 + Poly1305 + the AEAD construction (RFC 8439, pure TS, KAT-verified) live canonically in
2
- // @uuidna/uuidna — one implementation shared by both apps, no re-declared copy.
3
- export { chachaBlock, chacha20, poly1305, aeadEncrypt, aeadDecrypt } from '@uuidna/uuidna'
package/src/0/crypt.ts DELETED
@@ -1,4 +0,0 @@
1
- // The encryption envelope — ChaCha20-Poly1305 core + PBKDF2-SHA256 KDF + uuidna 7d-fold envelope — lives
2
- // canonically in @uuidna/uuidna. One implementation shared by both apps; convergent seals, no re-declared copy.
3
- export { encrypt, decrypt, verifyEnvelope, ITER } from '@uuidna/uuidna'
4
- export type { Sealed } from '@uuidna/uuidna'
package/src/0/csp.ts DELETED
@@ -1,10 +0,0 @@
1
- // Single source of the Content-Security-Policy — imported by .vitepress/config.ts (head) AND
2
- // scripts/locale-fold.ts (stubs), so the policy is declared ONCE, never hardcoded twice (no drift).
3
- // Self-contained: no external scripts/styles/fonts/img/connect. 'unsafe-inline' is required (VitePress
4
- // injects inline check-dark-mode/check-mac-os scripts + inline style attributes; meta-CSP can't use
5
- // nonces) — so this hardens RESOURCE ORIGIN, not full anti-XSS. The deterministic guarantee is the
6
- // external-import gate (scripts/import-gate.ts) + the security gate (scripts/security-gate.ts).
7
- export const CSP =
8
- "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; " +
9
- "img-src 'self' data:; font-src 'self'; connect-src 'self'; object-src 'none'; " +
10
- "base-uri 'self'; form-action 'self'; frame-ancestors 'none'"
@@ -1,31 +0,0 @@
1
- // Release entanglement (honest sense) — each release cryptographically BOUND to its neighbours.
2
- // A hash chain: change any release and every downstream address changes (avalanche). This is
3
- // tamper-evidence — correlation by DERIVATION — not quantum entanglement, and it carries no message.
4
- import { toUuid, merge, merkleFold } from './index.ts'
5
-
6
- export function report(): string {
7
- const chain = (rs: string[]) => { let prev = toUuid('genesis'); const out: string[] = []; for (const r of rs) { prev = merge(prev, toUuid(r)); out.push(prev) } return out }
8
- const sealOf = (rs: string[]) => merkleFold(chain(rs))
9
-
10
- const releases = ['v1.0.34', 'v1.0.35', 'v1.0.36', 'v1.0.37']
11
- const original = sealOf(releases)
12
- const flipped = sealOf(['v1.0.34', 'v1.0.35', 'v1.0.36!', 'v1.0.37']) // alter ONE neighbour
13
- const changed = original !== flipped
14
-
15
- let o = 'release entanglement — each bound to its neighbours (honest sense):\n\n'
16
- o += ' neighbours in the version line — each release folds with its predecessor (a hash chain):\n'
17
- o += ' seal over ' + releases.join(', ') + '\n'
18
- o += ' original: ' + original.slice(0, 13) + '…\n'
19
- o += ' alter one neighbour (v1.0.36 → v1.0.36!): ' + flipped.slice(0, 13) + '… changed? ' + changed + '\n'
20
- o += ' → you cannot alter one release without the chain revealing it. neighbours are BOUND.\n\n'
21
- o += ' bound in several computable "dimensions":\n'
22
- o += ' · version line — the hash chain above (predecessor ↔ successor)\n'
23
- o += ' · the mesh — 10−d reflects each digit to its partner (4↔6, fixed 5)\n'
24
- o += ' · the tree — a merkle audit path binds each leaf to its siblings (see holographic.ts)\n\n'
25
- o += 'HONEST: this is CRYPTOGRAPHIC DEPENDENCY — a hash chain, the basis of tamper-evidence — NOT\n'
26
- o += 'quantum entanglement. Correlation by DERIVATION, not action-at-a-distance: altering a release\n'
27
- o += 'does not reach out and change its neighbour\'s stored bytes; it makes recomputation reveal the\n'
28
- o += 'break. No information travels without payload (no-communication theorem holds). "Entangled" =\n'
29
- o += 'bound by the math, not by physics.'
30
- return o
31
- }
package/src/0/fusion.ts DELETED
@@ -1,28 +0,0 @@
1
- // Tokens are valid only in the fusion — validity = MEMBERSHIP in the verified whole, not the token.
2
- // A bare UUID proves nothing (anyone can mint one). The same 64-bit string is valid inside the fused
3
- // root and meaningless outside it: an orphan token is not in the root, and adding it changes the root.
4
- import { toUuid, merkleFold } from './index.ts'
5
-
6
- export function report(): string {
7
- const units = [1, 2, 4, 5, 7, 8], seven = [3, 2, 6, 4, 5, 1, 0]
8
- const leaves: string[] = []; for (const u of units) for (const r of seven) leaves.push(toUuid(u + 'x' + r))
9
- const root = merkleFold(leaves) // the fused whole
10
-
11
- const fused = toUuid('5x0') // a real cell of the cross — fused
12
- const orphan = toUuid('orphan-token') // never fused
13
- const fusedIn = leaves.includes(fused)
14
- const orphanIn = leaves.includes(orphan)
15
- const orphanChangesRoot = merkleFold([...leaves, orphan]) !== root
16
-
17
- let o = 'tokens are valid only in the fusion:\n\n'
18
- o += ' the fused whole: ' + leaves.length + ' cells → one root ' + root.slice(0, 13) + '…\n\n'
19
- o += ' a fused token (a real cell) is a member of the root: ' + fusedIn + ' → valid\n'
20
- o += ' an orphan token (never fused) is NOT a member: ' + orphanIn + ' → invalid\n'
21
- o += ' adding the orphan changes the root (it was not part of the fusion): ' + orphanChangesRoot + '\n'
22
- o += ' → the same kind of 64-bit string is valid INSIDE the fusion, meaningless outside it.\n\n'
23
- o += 'HONEST: validity here = MEMBERSHIP in the verified whole (it folds to the root; a merkle proof\n'
24
- o += 'exists — see holographic.ts), not any property of the token alone. A hash is one-way and a\n'
25
- o += 'public token is just a name (see security.ts) — it carries no authority by itself; it is valid\n'
26
- o += 'only as a proven part of the fused, sealed deposit.'
27
- return o
28
- }
@@ -1,57 +0,0 @@
1
- // Holographic verification — the whole checkable from a tiny part (digit 0).
2
- // A Merkle membership proof is the honest core of "holographic within tiniest resources": any one
3
- // leaf proves it belongs to the whole with a LOGARITHMIC audit path (⌈log₂ N⌉ sibling hashes), not
4
- // the full set. The tree is self-similar (fractal); the shared root lives in every part.
5
- import { merge, merkleFold, toUuid } from './index.ts'
6
-
7
- // Rebuild merkleFold's tree (it sorts leaves) as layers, so we can extract an audit path.
8
- function layers(leaves: readonly string[]): string[][] {
9
- let layer = [...leaves].sort()
10
- const out = [layer]
11
- while (layer.length > 1) {
12
- const next: string[] = []
13
- for (let i = 0; i < layer.length; i += 2) { const a = layer[i], b = layer[i + 1]; next.push(b === undefined ? a : merge(a, b)) }
14
- out.push(next); layer = next
15
- }
16
- return out
17
- }
18
- function proof(leaves: readonly string[], target: string): { hash: string; left: boolean }[] {
19
- const L = layers(leaves); let idx = L[0].indexOf(target); const path: { hash: string; left: boolean }[] = []
20
- for (let l = 0; l < L.length - 1; l++) {
21
- const layer = L[l], isRight = (idx & 1) === 1, sib = isRight ? idx - 1 : idx + 1
22
- if (sib < layer.length) path.push({ hash: layer[sib], left: isRight }) // sibling on the left iff target is right
23
- idx = idx >> 1
24
- }
25
- return path
26
- }
27
- function verify(target: string, path: { hash: string; left: boolean }[], root: string): boolean {
28
- let h = target
29
- for (const { hash, left } of path) h = left ? merge(hash, h) : merge(h, hash)
30
- return h === root
31
- }
32
-
33
- export function report(): string {
34
- // The cross: 42 content-addressed cells (6 units × 7) — one whole, one root.
35
- const units = [1, 2, 4, 5, 7, 8], seven = [3, 2, 6, 4, 5, 1, 0]
36
- const leaves: string[] = []; for (const u of units) for (const r of seven) leaves.push(toUuid(u + 'x' + r))
37
- const root = merkleFold(leaves)
38
- const target = toUuid('5x0') // the center × hub cell
39
- const p = proof(leaves, target)
40
- const ok = verify(target, p, root)
41
-
42
- let o = 'holographic verification — the whole, checkable from a tiny part:\n\n'
43
- o += ' the cross: ' + leaves.length + ' content-addressed cells (6 units × 7) → one merkle root (the whole).\n'
44
- o += ' a MEMBERSHIP proof for one cell is the audit path — log-few sibling hashes, not all ' + leaves.length + ':\n'
45
- o += ' proof size: ' + p.length + ' hashes (⌈log₂ ' + leaves.length + '⌉) vs the full set: ' + leaves.length + '\n'
46
- o += ' verify one-of-' + leaves.length + ' against the root: ' + ok + '\n'
47
- o += ' → any part proves it belongs to the whole with tiny (logarithmic) resources.\n'
48
- o += ' holographic: the root lives in every part; a part reconstructs the whole\'s fingerprint.\n\n'
49
- o += ' fractal: the tree is self-similar (a fold of folds); the mesh reflects (10−d) at every scale.\n'
50
- o += ' scale: log-sized proofs mean ~1 billion leaves verify in ~30 hashes.\n\n'
51
- o += 'HONEST: a Merkle proof is EXACTLY logarithmic (⌈log₂ N⌉) — real, the basis of git/blockchain\n'
52
- o += 'integrity. "holographic" = a part verifies the whole via the shared root; "fractal" = the binary\n'
53
- o += 'tree is self-similar. But it is NOT free and NOT literally infinite: each proof is log(N) real\n'
54
- o += 'hashes over a FINITE set. Tiny resources, not zero; huge N, not ∞. Whole signed (Singularity),\n'
55
- o += 'parts verifiable.'
56
- return o
57
- }
@@ -1,30 +0,0 @@
1
- // Prove the impossibilities — so every NOT in the prose is a PROVEN theorem, not an assertion.
2
- // ℤ/9 is finite, so ∀-claims are decidable by exhaustion (the same rigour as Lean's `decide`).
3
- // The paradox: "proving X impossible makes it possible." Resolution — two LEVELS: the object
4
- // (e.g. 0's inverse) stays IMPOSSIBLE; the meta-statement ("0 has no inverse") is a POSSIBLE, true
5
- // theorem. Impossibility-proofs are positive results; the "possible" is the proof, never the object.
6
- const m9 = (n: number) => ((n % 9) + 9) % 9
7
- const hasInverse = (a: number) => [1, 2, 3, 4, 5, 6, 7, 8].some((x) => m9(a * x) === 1)
8
-
9
- export function report(): string {
10
- // Each is proven by checking ALL of ℤ/9 — a finite, exhaustive impossibility proof.
11
- const proofs: [string, boolean][] = [
12
- ['0 has NO multiplicative inverse (∀x∈ℤ/9, 0·x ≠ 1)', !hasInverse(0)],
13
- ['3,6,9 have NO inverse (the nilradical)', [3, 6, 9].every((d) => !hasInverse(d))],
14
- ['3²≡6²≡9²≡0 (nilpotent — collapse into the void)', [3, 6, 9].every((d) => m9(d * d) === 0)],
15
- ['division BY 0 is undefined (no inverse exists to define n/0 as a field op)', !hasInverse(0)],
16
- ['10 is not a distinct ℤ/9 digit (10 ≡ 1; it wraps)', m9(10) === 1],
17
- ['5 is the ONLY self-complement (10−d=d) among 1..9', [1, 2, 3, 4, 5, 6, 7, 8, 9].filter((d) => 10 - d === d).join(',') === '5'],
18
- ]
19
- const allProven = proofs.every(([, ok]) => ok)
20
-
21
- let o = 'prove the impossibilities — every NOT, verified by exhaustion:\n\n'
22
- proofs.forEach(([claim, ok]) => { o += ' ' + (ok ? '✓ PROVEN impossible' : '✗ FAILED') + ' — ' + claim + '\n' })
23
- o += '\n all impossibilities proven? ' + allProven + ' → the prose\'s NOTs are theorems, not assertions.\n\n'
24
- o += 'the paradox ("proving them impossible proves them possible") — resolved by two LEVELS:\n'
25
- o += ' object level: 0\'s inverse is IMPOSSIBLE. it stays impossible.\n'
26
- o += ' meta level: "0 has no inverse" is a POSSIBLE, true theorem (just proven above).\n'
27
- o += ' → both hold at once, no contradiction. what becomes "possible" is the PROOF, never the\n'
28
- o += ' impossible object. an impossibility-proof is a positive result (cf. Gödel, halting problem).'
29
- return o
30
- }
package/src/0/imprint.ts DELETED
@@ -1,160 +0,0 @@
1
- // Imprint — a REVERSIBLE binary↔uuid codec. Honest naming first: this is NOT reversing the one-way
2
- // FNV content-address (toUuid), which cannot be undone (see scripts/verify.ts) — and it is NOT
3
- // encryption (no key, no secrecy). It is a lossless ENCODING: we CONSTRUCT a uuid whose 128 bits
4
- // directly carry a binary message, and read those bits back out exactly. Integrity/identity layer,
5
- // never truth. A uuid holds 128 bits; 6 are reserved (4 version + 2 variant, matching toUuid's v8),
6
- // 7 hold a length header → up to 115 message bits per uuid. Round-trips exactly for L ≤ CAPACITY.
7
- import { toUuid } from './index.ts'
8
-
9
- // Reserved bit positions (big-endian, bit 0 = MSB of byte 0):
10
- // version nibble = high nibble of byte 6 → bits 48..51, fixed to 1000 (0x8)
11
- // variant = top 2 bits of byte 8 → bits 64,65, fixed to 10
12
- const RESERVED = new Set([48, 49, 50, 51, 64, 65])
13
- const LEN_BITS = 7 // 0..127 fits; the free region minus this header is the message capacity
14
- const FREE = Array.from({ length: 128 }, (_, i) => i).filter((i) => !RESERVED.has(i))
15
- export const CAPACITY = FREE.length - LEN_BITS // 122 - 7 = 115 message bits per uuid
16
-
17
- const isBits = (s: string): boolean => /^[01]*$/.test(s)
18
- const num2bits = (n: number, width: number): string => n.toString(2).padStart(width, '0').slice(-width)
19
-
20
- /** Pack a 128-bit array into canonical uuid string. */
21
- function bitsToUuid(bits: readonly number[]): string {
22
- let hex = ''
23
- for (let byte = 0; byte < 16; byte++) {
24
- let v = 0
25
- for (let b = 0; b < 8; b++) v = (v << 1) | bits[byte * 8 + b]
26
- hex += v.toString(16).padStart(2, '0')
27
- }
28
- return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`
29
- }
30
-
31
- /** Unpack a canonical uuid string into a 128-bit array. */
32
- function uuidToBits(uuid: string): number[] {
33
- const hex = uuid.replace(/-/g, '')
34
- if (!/^[0-9a-f]{32}$/i.test(hex)) throw new Error('imprint: not a 32-hex uuid')
35
- const bits: number[] = []
36
- for (const ch of hex) {
37
- const nib = parseInt(ch, 16)
38
- for (let b = 3; b >= 0; b--) bits.push((nib >> b) & 1)
39
- }
40
- return bits
41
- }
42
-
43
- /**
44
- * imprint(message) → a valid uuid carrying the message in its free bits.
45
- * message: a binary string ('0'/'1'), length ≤ CAPACITY. The uuid reads back exactly via readImprint.
46
- */
47
- export function imprint(message: string): string {
48
- if (!isBits(message)) throw new Error('imprint: message must be a binary string of 0/1')
49
- if (message.length > CAPACITY) throw new Error(`imprint: message ${message.length} bits > capacity ${CAPACITY}`)
50
- const bits = new Array(128).fill(0)
51
- // reserved: version 8 (1000), variant (10) — matches toUuid's markers so imprints look native.
52
- bits[48] = 1; bits[49] = 0; bits[50] = 0; bits[51] = 0
53
- bits[64] = 1; bits[65] = 0
54
- // free region: [ length header (7 bits) | message bits | zero-fill ]
55
- const payload = num2bits(message.length, LEN_BITS) + message
56
- for (let i = 0; i < payload.length; i++) bits[FREE[i]] = payload.charCodeAt(i) - 48
57
- return bitsToUuid(bits)
58
- }
59
-
60
- /** readImprint(uuid) → the exact binary message imprinted by imprint(). Inverse of imprint. */
61
- export function readImprint(uuid: string): string {
62
- const bits = uuidToBits(uuid)
63
- const free = FREE.map((i) => bits[i])
64
- let len = 0
65
- for (let i = 0; i < LEN_BITS; i++) len = (len << 1) | free[i]
66
- if (len > CAPACITY) throw new Error('imprint: length header out of range — uuid was not imprinted by imprint()')
67
- return free.slice(LEN_BITS, LEN_BITS + len).join('')
68
- }
69
-
70
- /** Convenience: imprint UTF-8 text (≤ 14 ASCII chars fit) and read it back exactly. */
71
- export function imprintText(text: string): string {
72
- const bytes = [...new TextEncoder().encode(text)]
73
- const bits = bytes.map((b) => num2bits(b, 8)).join('')
74
- return imprint(bits)
75
- }
76
- export function readImprintText(uuid: string): string {
77
- const bits = readImprint(uuid)
78
- const bytes: number[] = []
79
- for (let i = 0; i + 8 <= bits.length; i += 8) bytes.push(parseInt(bits.slice(i, i + 8), 2))
80
- return new TextDecoder().decode(new Uint8Array(bytes))
81
- }
82
-
83
- /** roundTrips(message) → true iff readImprint(imprint(message)) === message. The honest, gated fact. */
84
- export function roundTrips(message: string): boolean {
85
- try { return readImprint(imprint(message)) === message } catch { return false }
86
- }
87
-
88
- /**
89
- * imprintChain(bits) → a CHAIN of uuids carrying a message of ANY length: split into CAPACITY-bit chunks,
90
- * imprint each. One uuid holds ≤115 bits (bounded, pigeonhole); a chain of N holds ≤ N·115 — the collective
91
- * scaling, developed. Public, reversible ENCODING (not encryption, no secrecy). readImprintChain reverses it.
92
- */
93
- export function imprintChain(bits: string): string[] {
94
- if (!/^[01]*$/.test(bits)) throw new Error('imprintChain: message must be a binary string')
95
- if (bits.length === 0) return [imprint('')]
96
- const out: string[] = []
97
- for (let i = 0; i < bits.length; i += CAPACITY) out.push(imprint(bits.slice(i, i + CAPACITY)))
98
- return out
99
- }
100
-
101
- /** readImprintChain(uuids) → recover the full message: read each carrier and concatenate, exactly. */
102
- export function readImprintChain(uuids: readonly string[]): string {
103
- return uuids.map((u) => readImprint(u)).join('')
104
- }
105
-
106
- /** imprintTextChain(text) → a uuid chain carrying arbitrary UTF-8 text of any length (built on imprintChain). */
107
- export function imprintTextChain(text: string): string[] {
108
- const bytes = [...new TextEncoder().encode(text)]
109
- return imprintChain(bytes.map((b) => num2bits(b, 8)).join(''))
110
- }
111
-
112
- /** readImprintTextChain(uuids) → recover the full text from its uuid chain, exactly. */
113
- export function readImprintTextChain(uuids: readonly string[]): string {
114
- const bits = readImprintChain(uuids)
115
- const bytes: number[] = []
116
- for (let i = 0; i + 8 <= bits.length; i += 8) bytes.push(parseInt(bits.slice(i, i + 8), 2))
117
- return new TextDecoder().decode(new Uint8Array(bytes))
118
- }
119
-
120
- /**
121
- * skill(message) → how skilful the clown is at juggling this message through a uuid: imprint throws the
122
- * bits, readImprint catches them; fidelity = fraction caught. A skilful clown catches every bit (1.0);
123
- * a dropped bit lowers the score. Over-capacity is a fumble (fidelity 0) — respect the floor. Computed.
124
- */
125
- export function skill(message: string): { imprinted: number; recovered: number; fidelity: number; skilful: boolean } {
126
- let recovered = 0
127
- try {
128
- const back = readImprint(imprint(message))
129
- for (let i = 0; i < message.length; i++) if (back[i] === message[i]) recovered++
130
- if (back.length !== message.length) recovered = message.length ? 0 : 0
131
- } catch { recovered = 0 }
132
- const fidelity = message.length === 0 ? 1 : recovered / message.length
133
- return { imprinted: message.length, recovered, fidelity, skilful: fidelity === 1 }
134
- }
135
-
136
- /**
137
- * coin64(text) → the shared currency: a 64-bit coin (16 hex digits) minted from any content — the top
138
- * 64 bits of its 128-bit content-address. Adopted by all with no exception: every module, every string,
139
- * mints the SAME coin every time (deterministic). This is the common denominator the harmony gate folds.
140
- * Integrity, not value: a coin proves the bytes, not their worth.
141
- */
142
- export function coin64(text: string): string {
143
- return toUuid(text).replace(/-/g, '').slice(0, 16)
144
- }
145
-
146
- export function report(): string {
147
- const demo = '01001000' + '01101001' // "Hi" in ASCII bits
148
- const u = imprint(demo)
149
- const back = readImprint(u)
150
- const txt = imprintText('Hi'), txtBack = readImprintText(txt)
151
- let o = 'imprint — reversible binary↔uuid codec (NOT hash-reversal, NOT encryption):\n\n'
152
- o += ' capacity: ' + CAPACITY + ' message bits per uuid (128 − 6 reserved − 7 length header)\n'
153
- o += ' imprint("' + demo + '")\n'
154
- o += ' → ' + u + '\n'
155
- o += ' readImprint(uuid) → ' + back + ' round-trips: ' + (back === demo) + '\n'
156
- o += ' imprintText("Hi") → ' + txt + ' → readImprintText → "' + txtBack + '"\n\n'
157
- o += ' HONEST: this CONSTRUCTS a uuid from a message and reads it back — a lossless codec (integrity).\n'
158
- o += ' It does NOT undo the one-way FNV toUuid, and it is not encryption (no key, no secrecy).'
159
- return o
160
- }