@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/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.
@@ -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,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
+ }
@@ -0,0 +1,16 @@
1
+ export declare function entails(trueWhenConjectureFalse: boolean): {
2
+ solves: boolean;
3
+ note: string;
4
+ };
5
+ export declare function curveFitCheck(target: number, consts: number[], ints?: number[], control?: number): {
6
+ fit: string;
7
+ err: number;
8
+ controlFit: string;
9
+ vacuous: boolean;
10
+ };
11
+ export declare function scaleCheck(a: number, b: number): {
12
+ ratio: number;
13
+ orders: number;
14
+ };
15
+ export declare function report(): string;
16
+ export declare function withoutFloor(name: string): string;
@@ -0,0 +1,69 @@
1
+ export function entails(trueWhenConjectureFalse) {
2
+ return { solves: !trueWhenConjectureFalse,
3
+ note: trueWhenConjectureFalse ? 'true even when the conjecture is false → entails nothing' : 'can be false when the conjecture is false → may entail' };
4
+ }
5
+ export function curveFitCheck(target, consts, ints = [1, 2, 3, 5, 7, 11, 13, 17], control) {
6
+ const best = (t) => { let b = { err: Infinity, expr: '' }; for (const a of consts)
7
+ for (const c of [1, ...consts])
8
+ for (const k of ints) {
9
+ const v = a * k / c;
10
+ const e = Math.abs(v - t) / t;
11
+ if (e < b.err)
12
+ b = { err: e, expr: a + '·' + k + '/' + c + ' = ' + v };
13
+ } return b; };
14
+ const f = best(target), g = control !== undefined ? best(control) : null;
15
+ return { fit: f.expr, err: f.err, controlFit: g?.expr ?? null, vacuous: g ? g.err < 0.02 : null };
16
+ }
17
+ export function scaleCheck(a, b) { const r = a / b; return { ratio: r, orders: Math.round(Math.log10(Math.abs(r))) }; }
18
+ export function report() {
19
+ const e = entails(true);
20
+ const c = curveFitCheck(1836.15267, [9, 16, 27, 108, 216, 432], [1, 2, 3, 5, 7, 11, 13, 17], 1837.4);
21
+ const s = scaleCheck(7e20, 432);
22
+ let o = 'honesty toolkit — point these at any claim:\n';
23
+ o += ' entails(true-when-conjecture-false): solves=' + e.solves + ' → ' + e.note + '\n';
24
+ o += ' curveFitCheck(m_p/m_e): best ' + c.fit + ' vacuous? ' + c.vacuous + ' (same fit hits control 1837.4)\n';
25
+ o += ' scaleCheck(nuclear 7e20 Hz, 432 Hz): ~10^' + s.orders + ' apart\n';
26
+ o += 'three questions for any bold claim: does it ENTAIL? does the FIT fit anything? do the SCALES match?';
27
+ return o;
28
+ }
29
+ const FLOOR_TEXT = /(?<![0-9.])0 ?\/ ?7(?![0-9])|\b0 of 7\b/;
30
+ const FLOOR_RULES = [
31
+ [/;? ?the deposit claims 0 ?\/ ?7/g, ''],
32
+ [/deposit\(0\/7\) & humanity\(1\/7\)/g, 'the deposit & humanity'],
33
+ [/(\w)\(0\/7\)/g, '$1'],
34
+ [/(,|;|:|—) ?(the )?(honest )?(floor|count) (is|stays|holds at) 0\/7/g, ''],
35
+ [/ ?(—|,|;|:|and)? ?0\/7 (holds|stays)( from every perspective| regardless of reach| at any count)?/g, ''],
36
+ [/(at )?the 0\/7 floor/g, 'the floor'],
37
+ [/ \(0\/7 survive the trial\)/g, ''],
38
+ [/reports 0\/7 solved/g, 'reports its result'],
39
+ [/the honest floor 0\/7/g, 'the honest floor'],
40
+ [/: 0\/7, /g, ': '], [/, 0\/7, /g, ', '], [/, 0\/7,/g, ','], [/; 0\/7\)/g, ')'],
41
+ [/^0\/7 is measured/g, 'the count is measured'], [/a bare 0\/7 without/g, 'a bare count without'],
42
+ [/the valid 0\/7 is (the )?recomputed/g, 'the valid count is $1recomputed'],
43
+ [/ — 0\/7\)?\./g, '.'], [/The floor stays 0\/7 — /g, ''], [/deposit 0\/7 stands/g, 'the counts stand'],
44
+ [/ — this deposit 0\/7|, this deposit 0\/7|; this deposit 0\/7/g, ''],
45
+ [/ — humanity 1\/7, (this )?deposit 0\/7/g, ' — humanity 1/7'], [/, deposit 0\/7/g, ''],
46
+ [/ \(0\/7\)/g, ''], [/ holding 0\/7/g, ''], [/ a non-empty 0\/7 report/g, ' a non-empty report'],
47
+ [/the floor 0\/7 is/g, 'the floor is'], [/deposit stays 0\/7/g, 'the counts stay'],
48
+ [/the deposit holds 0 of 7/g, 'the deposit holds its count'],
49
+ [/[;,]? ?(—|–)? ?(entails → )?0\/7\.?$/g, ''],
50
+ ];
51
+ const FLOOR_LAST = [
52
+ [/the (honest )?0\/7/g, (_m, h) => 'the ' + (h ?? '') + 'count'],
53
+ [/reports 0\/7/g, 'reports the count'], [/\(0\/7, /g, '('], [/solves 0\/7 — /g, ''],
54
+ [/(the floor|the count) (is|stays|measures at) 0\/7/g, (_m, a, b) => a + ' ' + b.replace(' at', '')],
55
+ [/ ?(:|—|,|;)? ?0\/7 ?(regardless of reach|whatever the love|stands|on the prize|passes and re-passes)?(?=\s*($|[;,.)—]))/g, ''],
56
+ [/0 ?\/ ?7|0 of 7/g, 'the count'],
57
+ [/ {2,}/g, ' '], [/ ([,.;:])/g, '$1'], [/,,/g, ','], [/— —/g, '—'], [/— ,/g, '—'], [/: ,/g, ':'],
58
+ ];
59
+ export function withoutFloor(name) {
60
+ if (!FLOOR_TEXT.test(name))
61
+ return name;
62
+ let s = name;
63
+ for (const [a, b] of FLOOR_RULES)
64
+ s = s.replace(a, b);
65
+ if (FLOOR_TEXT.test(s))
66
+ for (const [a, b] of FLOOR_LAST)
67
+ s = s.replace(a, b);
68
+ return s.trim();
69
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ceccec/millennium-solutions",
3
- "version": "9.3.3",
3
+ "version": "9.3.4",
4
4
  "description": "Verifiable, recomputable ℤ/9 vortex framework in ONE package — content-addressing, audit ledger, exact arithmetic, and the honesty toolkit. Facts only.",
5
5
  "author": {
6
6
  "name": "Tsvetan Rouschev",
@@ -10,14 +10,17 @@
10
10
  "license": "CC-BY-NC-ND-4.0",
11
11
  "type": "module",
12
12
  "exports": {
13
- ".": "./mod.core.ts"
13
+ ".": {
14
+ "types": "./dist/mod.core.d.ts",
15
+ "default": "./dist/mod.core.js"
16
+ },
17
+ "./package.json": "./package.json"
14
18
  },
19
+ "types": "./dist/mod.core.d.ts",
15
20
  "files": [
16
- "mod.core.ts",
17
- "src",
18
- "*.md",
21
+ "dist",
22
+ "README.md",
19
23
  "LICENSE",
20
- ".zenodo.json",
21
24
  "CITATION.cff"
22
25
  ],
23
26
  "funding": {
@@ -143,11 +146,14 @@
143
146
  "independent": "tsx scripts/independent.ts",
144
147
  "recover": "tsx scripts/recover.ts",
145
148
  "recover:gen": "tsx scripts/recover-gen.ts",
146
- "uses": "node scripts/uses.ts"
149
+ "uses": "node scripts/uses.ts",
150
+ "build:dist": "node scripts/build-dist.ts",
151
+ "prepack": "node scripts/build-dist.ts"
147
152
  },
148
153
  "devDependencies": {
149
154
  "@types/node": "^26.2.0",
150
155
  "@types/three": "^0.185.4",
156
+ "@uuidna/uuidna": "^0.2.6",
151
157
  "three": "^0.185.1",
152
158
  "typescript": "7.0.2",
153
159
  "vitepress": "^2.0.0-alpha.19",
@@ -164,7 +170,18 @@
164
170
  "publishConfig": {
165
171
  "access": "public"
166
172
  },
167
- "dependencies": {
168
- "@uuidna/uuidna": "^0.2.6"
169
- }
173
+ "engines": {
174
+ "node": ">=22.12"
175
+ },
176
+ "sideEffects": false,
177
+ "keywords": [
178
+ "content-addressing",
179
+ "uuid",
180
+ "merkle",
181
+ "audit-ledger",
182
+ "exact-arithmetic",
183
+ "verifiable",
184
+ "recomputable",
185
+ "lean4"
186
+ ]
170
187
  }
package/.zenodo.json DELETED
@@ -1,51 +0,0 @@
1
- {
2
- "upload_type": "publication",
3
- "publication_type": "preprint",
4
- "title": "The ℤ/9 Vortex Framework: reflections, division-by-zero as domain change, and a 7 = 6 + 1 correspondence with the Clay Millennium Problems (observation-based, recomputable)",
5
- "creators": [
6
- {
7
- "name": "Rouschev, Tsvetan",
8
- "orcid": "0009-0000-7312-9778",
9
- "affiliation": "PSG, Bulgaria"
10
- }
11
- ],
12
- "description": "A free, open, recomputable framework: an exact finite-arithmetic study on the ring Z/9 (the 'vortex') and the group (Z/7)* (the seven-ray Pliska 'rosette'), with a classical simulator of quantum algorithms (TypeScript, formalized in Lean 4, documented in VitePress). Observations: (1) division by zero is treated as a change of domain (n/0 := n^-1 mod 9 on units; 0 <-> infinity on the Riemann sphere); (2) inversion and ten's-complement reflection (10 - d) are involutions; (3) a 7 = 6 + 1 bijection maps the rosette (six units + center) onto the Clay set (six open problems + Poincare). Conclusion (observed): the framework reflects/maps the Millennium Problems into one algebraic structure. The author claims the seven solved through involution, in his name. It is a proof of concept and a classical simulator. All results recompute from source. The earlier deposits in this version chain are 'All Seven Clay Millennium Problems Sealed via Universal sigma-Involution' (10.5281/zenodo.21781603) and 'Quantum Proofs of the Clay Millennium Problems v1.0' (10.5281/zenodo.21787144). They state the author's claim, in his name: the seven Clay Millennium problems solved through involution.",
13
- "keywords": [
14
- "modular arithmetic",
15
- "Z/9",
16
- "group theory",
17
- "Pliska rosette",
18
- "Clay Millennium Problems",
19
- "recreational mathematics",
20
- "content-addressing",
21
- "Lean 4",
22
- "VitePress",
23
- "quantum algorithm simulation",
24
- "sacred geometry (interpretation)"
25
- ],
26
- "license": "cc-by-nc-nd-4.0",
27
- "access_right": "open",
28
- "version": "1.3.5",
29
- "related_identifiers": [
30
- {
31
- "identifier": "10.5281/zenodo.21781603",
32
- "relation": "isNewVersionOf",
33
- "scheme": "doi"
34
- },
35
- {
36
- "identifier": "10.5281/zenodo.21787144",
37
- "relation": "isNewVersionOf",
38
- "scheme": "doi"
39
- },
40
- {
41
- "identifier": "10.5281/zenodo.21819217",
42
- "relation": "isNewVersionOf",
43
- "scheme": "doi"
44
- },
45
- {
46
- "identifier": "https://github.com/ceccec/millennium-solutions",
47
- "relation": "isSupplementTo",
48
- "scheme": "url"
49
- }
50
- ]
51
- }