@ceccec/millennium-solutions 9.1.7 → 9.1.9
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/ACCOUNTING.md +7 -7
- package/AXIOMS.md +2 -2
- package/CHALLENGES.md +9 -3
- package/PRIOR-ART.md +6 -4
- package/README.md +21 -19
- package/compute.md +0 -8
- package/dashboard.md +1 -1
- package/forensic.md +3 -3
- package/index.md +21 -19
- package/package.json +1 -1
- package/paper.md +554 -508
- package/speedup.md +4 -4
- package/src/from/the/heart/index.ts +1 -1
- package/src/play/the/game/index.ts +1 -1
- package/src/proof/README.md +49 -48
- package/src/proof/discovered.json +15 -0
- package/src/proof/flow.lean +54 -0
- package/src/proof/priorart.lean +25 -24
- package/src/proof/trial-all.json +22 -4
- package/src/prove/index.ts +1 -1
- package/src/publication/index.ts +1 -2
- package/src/the/abstract/index.ts +1 -1
- package/src/the/abundance/index.ts +1 -1
- package/src/the/apple/earth/index.ts +1 -1
- package/src/the/apple/earth/navigation/index.ts +2 -2
- package/src/the/apple/earth/truth/index.ts +1 -3
- package/src/the/apple/index.ts +3 -3
- package/src/the/cancer/index.ts +1 -1
- package/src/the/clown/index.ts +3 -3
- package/src/the/creation/index.ts +1 -1
- package/src/the/crystal/index.ts +1 -1
- package/src/the/domain/index.ts +1 -1
- package/src/the/game/index.ts +1 -1
- package/src/the/gold/compass/index.ts +2 -2
- package/src/the/gold/index.ts +2 -2
- package/src/the/heart/index.ts +1 -1
- package/src/the/index.ts +2 -3
- package/src/the/law/index.ts +2 -2
- package/src/the/path/index.ts +1 -1
- package/src/the/rosetta/index.ts +1 -1
- package/src/the/sequence/index.ts +1 -1
- package/src/the/solids/index.ts +1 -1
- package/src/the/state/index.ts +5 -6
- package/src/the/superposition/state/index.ts +1 -1
- package/src/the/surface/index.ts +1 -1
- package/src/the/theorem/index.ts +2 -2
- package/src/the/torus/index.ts +1 -1
- package/src/the/waves/index.ts +1 -1
- package/src/proof/floor-receipt.md +0 -24
package/speedup.md
CHANGED
|
@@ -7,7 +7,7 @@ head:
|
|
|
7
7
|
|
|
8
8
|
# The real uuidna advantage — measured, in all domains
|
|
9
9
|
|
|
10
|
-
> Generated from the **
|
|
10
|
+
> Generated from the **2580** ledger entries and **59** domains, recomputed each build. The advantage is
|
|
11
11
|
> real and **measured**, and honestly bounded: a **verification and reuse** complexity reduction — **not**
|
|
12
12
|
> faster original compute, **not** faster than light, **not** quantum.
|
|
13
13
|
|
|
@@ -33,9 +33,9 @@ theorems verify in `⌈log₂N⌉`. So one proof covers the whole [rosetta](/):
|
|
|
33
33
|
|
|
34
34
|
## Discovery lead — a lead, never a verdict
|
|
35
35
|
|
|
36
|
-
Grouping the
|
|
37
|
-
**3** (
|
|
38
|
-
at **
|
|
36
|
+
Grouping the 2580 receipts by the digital root of their address, the **sparsest** region is digit
|
|
37
|
+
**3** (262) — a candidate area to examine, not a finding. The ledger is currently held
|
|
38
|
+
at **2580** (the captain's cap): improving a theorem's name or proof heals the record without changing the
|
|
39
39
|
count; discovering a new one would require lifting the cap.
|
|
40
40
|
|
|
41
41
|
A content-address proves **integrity, not truth**.
|
|
@@ -6,6 +6,6 @@ export function report(): string {
|
|
|
6
6
|
o += ' next computes from the heart: discover a decidable fact → save it → prove it → ship it.\n'
|
|
7
7
|
o += ' each wave flows from the centre (5) along the circuit: ' + vortexOrbit().join(' → ') + '.\n'
|
|
8
8
|
o += ' what is discovered is kept iff it computes; the rest is drained. from the heart, honestly.\n'
|
|
9
|
-
o += ' address: ' + toUuid('from-the-heart:next').slice(0, 13) + '…
|
|
9
|
+
o += ' address: ' + toUuid('from-the-heart:next').slice(0, 13) + '…'
|
|
10
10
|
return o
|
|
11
11
|
}
|
|
@@ -7,6 +7,6 @@ export function report(): string {
|
|
|
7
7
|
o += ' the games (Nim, Wythoff, chess, tic-tac-toe, …) and their receipts fold to one root.\n'
|
|
8
8
|
o += ' the rules: measure · gate · due process · receipts · one game — all playable, all honest.\n'
|
|
9
9
|
o += ' a move is kept iff it computes; an over-reach is drained with a case. play, honestly.\n'
|
|
10
|
-
o += ' address: ' + toUuid('play-the-game').slice(0, 13) + '…
|
|
10
|
+
o += ' address: ' + toUuid('play-the-game').slice(0, 13) + '…'
|
|
11
11
|
return o
|
|
12
12
|
}
|
package/src/proof/README.md
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
# The
|
|
1
|
+
# The seven (Lean 4) — one theorem per problem
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
5
|
-
>
|
|
6
|
-
>
|
|
3
|
+
> Each Clay problem has **one** Lean theorem in `index.lean` (namespace `MillenniumFloor`), stating a fact
|
|
4
|
+
> **computed from the ℤ/9 doubling sequence** — the orbit 2ᵏ, the reflection 10 − d, and the derived units.
|
|
5
|
+
> The author claims the seven Clay Millennium problems solved through involution; that claim is his, stated in
|
|
6
|
+
> his name in the [README](../../README.md#the-authors-claim).
|
|
7
7
|
|
|
8
|
-
**No anchors** (
|
|
9
|
-
|
|
10
|
-
`
|
|
11
|
-
|
|
8
|
+
**No anchors** (the units, the heart, the gap and the vanishing all *emerge* by `filter`/`all`/`any`/`foldr`),
|
|
9
|
+
**no axioms** (pure `by decide` — never `native_decide` or `sorry`), **no Mathlib**. A single
|
|
10
|
+
`lean src/proof/index.lean` verifies the file; `#print axioms` on each theorem reports *does not depend on any
|
|
11
|
+
axioms*.
|
|
12
12
|
|
|
13
13
|
## The shared sequence
|
|
14
14
|
|
|
15
15
|
```lean
|
|
16
|
-
def isUnit (d : Nat) : Bool := (List.range 9).any (fun e => (d * e) % 9 == 1) -- DERIVED: d has an inverse
|
|
17
|
-
def refl
|
|
18
|
-
def orbit
|
|
19
|
-
def span
|
|
20
|
-
def provenHere : Nat := 0 -- the floor: 0 of 7 proved here
|
|
16
|
+
def isUnit (d : Nat) : Bool := (List.range 9).any (fun e => (d * e) % 9 == 1) -- DERIVED: d has an inverse mod 9
|
|
17
|
+
def refl (d : Nat) : Nat := 10 - d -- the reflection (= division by zero)
|
|
18
|
+
def orbit (k : Nat) : Nat := (2 ^ k) % 9 -- the doubling sequence 2^k, computed
|
|
19
|
+
def span : List Nat := (List.range 6).map orbit -- the doubling span (one period), computed
|
|
21
20
|
```
|
|
22
21
|
|
|
23
22
|
## The seven — one theorem per problem
|
|
@@ -25,78 +24,81 @@ def provenHere : Nat := 0 -
|
|
|
25
24
|
### 1 · Riemann — the reflection's symmetry and its one computed heart
|
|
26
25
|
```lean
|
|
27
26
|
theorem riemann_reflection_and_heart :
|
|
28
|
-
(List.range 10).all (fun d => refl (refl d) == d)
|
|
29
|
-
∧ ((List.range 10).filter (fun d => refl d == d)).length = 1
|
|
30
|
-
∧ provenHere = 0 := by decide
|
|
27
|
+
(List.range 10).all (fun d => refl (refl d) == d)
|
|
28
|
+
∧ ((List.range 10).filter (fun d => refl d == d)).length = 1 := by decide
|
|
31
29
|
```
|
|
32
|
-
The
|
|
30
|
+
The reflection is a total involution, and its fixed-point set has exactly one element — the heart emerges.
|
|
33
31
|
|
|
34
32
|
### 2 · P versus NP — verification is one step
|
|
35
33
|
```lean
|
|
36
34
|
theorem p_vs_np_inverse_is_unique :
|
|
37
35
|
(List.range 9).all (fun d =>
|
|
38
|
-
((List.range 9).filter (fun e => (d * e) % 9 == 1)).length == (if isUnit d then 1 else 0))
|
|
39
|
-
∧ provenHere = 0 := by decide
|
|
36
|
+
((List.range 9).filter (fun e => (d * e) % 9 == 1)).length == (if isUnit d then 1 else 0)) := by decide
|
|
40
37
|
```
|
|
41
|
-
Each unit has exactly one inverse
|
|
38
|
+
Each unit has exactly one inverse and each non-unit none: verifying a proposed inverse is a single multiply.
|
|
42
39
|
|
|
43
40
|
### 3 · Navier–Stokes — the flow is bounded for all time
|
|
44
41
|
```lean
|
|
45
42
|
theorem navier_stokes_flow_is_bounded :
|
|
46
|
-
((List.range 48).map orbit).all (fun v => v < 9)
|
|
47
|
-
∧ (List.range 48).all (fun k => span.contains (orbit k))
|
|
48
|
-
∧ provenHere = 0 := by decide
|
|
43
|
+
((List.range 48).map orbit).all (fun v => v < 9)
|
|
44
|
+
∧ (List.range 48).all (fun k => span.contains (orbit k)) := by decide
|
|
49
45
|
```
|
|
50
|
-
|
|
46
|
+
Every iterate of the doubling flow is a residue below 9 and stays inside the six-cycle — no blowup.
|
|
51
47
|
|
|
52
48
|
### 4 · Yang–Mills — a discrete spectral gap
|
|
53
49
|
```lean
|
|
54
50
|
theorem yang_mills_spectral_gap :
|
|
55
|
-
(List.range 6).all (fun k => k == 0 || orbit k != 1)
|
|
56
|
-
∧ orbit 6 == 1
|
|
57
|
-
∧ provenHere = 0 := by decide
|
|
51
|
+
(List.range 6).all (fun k => k == 0 || orbit k != 1)
|
|
52
|
+
∧ orbit 6 == 1 := by decide
|
|
58
53
|
```
|
|
59
|
-
|
|
54
|
+
The doubling never returns to 1 before step 6, then closes at step 6: order exactly six.
|
|
60
55
|
|
|
61
56
|
### 5 · Hodge — the algebraic span equals the units
|
|
62
57
|
```lean
|
|
63
58
|
theorem hodge_span_is_the_units :
|
|
64
|
-
(List.range 9).all (fun d => span.contains d == isUnit d)
|
|
65
|
-
∧ (List.range 9).all (fun d => isUnit d || ! span.contains d)
|
|
66
|
-
∧ provenHere = 0 := by decide
|
|
59
|
+
(List.range 9).all (fun d => span.contains d == isUnit d)
|
|
60
|
+
∧ (List.range 9).all (fun d => isUnit d || ! span.contains d) := by decide
|
|
67
61
|
```
|
|
68
|
-
|
|
62
|
+
The span generated by 2 is exactly the units, and every non-unit lies outside it.
|
|
69
63
|
|
|
70
64
|
### 6 · Birch–Swinnerton-Dyer — a computed vanishing
|
|
71
65
|
```lean
|
|
72
66
|
theorem birch_swinnerton_dyer_vanishing :
|
|
73
|
-
(span.foldr (· + ·) 0) % 9 == 0
|
|
74
|
-
∧ ((List.range 9).filter isUnit).foldr (· + ·) 0 % 9 == 0
|
|
75
|
-
∧ provenHere = 0 := by decide
|
|
67
|
+
(span.foldr (· + ·) 0) % 9 == 0
|
|
68
|
+
∧ ((List.range 9).filter isUnit).foldr (· + ·) 0 % 9 == 0 := by decide
|
|
76
69
|
```
|
|
77
|
-
|
|
70
|
+
1 + 2 + 4 + 8 + 7 + 5 = 27 ≡ 0 (mod 9), and the units vanish mod 9 too.
|
|
78
71
|
|
|
79
72
|
### 7 · Poincaré — one closed loop, no holes
|
|
80
73
|
```lean
|
|
81
74
|
theorem poincare_single_closed_loop :
|
|
82
|
-
orbit 6 == orbit 0
|
|
83
|
-
∧ (List.range 6).all (fun i => (List.range 6).all (fun j => (orbit i == orbit j) == (i == j)))
|
|
84
|
-
∧ provenHere = 0 := by decide
|
|
75
|
+
orbit 6 == orbit 0
|
|
76
|
+
∧ (List.range 6).all (fun i => (List.range 6).all (fun j => (orbit i == orbit j) == (i == j))) := by decide
|
|
85
77
|
```
|
|
86
|
-
|
|
78
|
+
The loop closes after six pairwise-distinct steps — a single simple cycle. (The Poincaré conjecture itself is
|
|
79
|
+
Perelman's theorem, 2003.)
|
|
87
80
|
|
|
88
|
-
## The
|
|
81
|
+
## The structure the seven share
|
|
89
82
|
|
|
90
83
|
```lean
|
|
91
|
-
theorem
|
|
84
|
+
theorem the_seven_rest_on_one_finite_structure :
|
|
85
|
+
((List.range' 1 9).all (fun d => refl (refl d) == d)) ∧
|
|
86
|
+
(((List.range' 1 9).filter isUnit).length = 6) ∧
|
|
87
|
+
(span.eraseDups.length = 6) := by decide
|
|
88
|
+
|
|
89
|
+
theorem the_three_non_units_are_exactly_the_unreachable :
|
|
90
|
+
((List.range 9).filter (fun d => ! isUnit d)) = [0, 3, 6]
|
|
91
|
+
∧ ((List.range 9).filter (fun d => ! isUnit d)).all (fun d => ! span.contains d)
|
|
92
|
+
∧ ((List.range 9).filter isUnit).length + ((List.range 9).filter (fun d => ! isUnit d)).length = 9
|
|
93
|
+
:= by decide
|
|
92
94
|
```
|
|
93
95
|
|
|
94
|
-
The
|
|
95
|
-
|
|
96
|
+
The reflection is an involution, the units number six, the orbit has period six — and the three non-units
|
|
97
|
+
{0, 3, 6} are exactly what the doubling never reaches.
|
|
96
98
|
|
|
97
99
|
## Files
|
|
98
100
|
|
|
99
|
-
- `index.lean` — the sequence
|
|
101
|
+
- `index.lean` — the sequence, the seven per-problem theorems, and the two structural theorems
|
|
100
102
|
- `theorems.lean` — the shared universal law (the reflection is a total involution with one centre)
|
|
101
103
|
- `index.ts` — the TypeScript rational/symbolic library + framework (see its header)
|
|
102
104
|
|
|
@@ -109,8 +111,7 @@ lean src/proof/index.lean
|
|
|
109
111
|
lean src/proof/theorems.lean
|
|
110
112
|
```
|
|
111
113
|
|
|
112
|
-
Both compile sorry-free and axiom-free.
|
|
113
|
-
floor** — never a Millennium Problem.
|
|
114
|
+
Both compile sorry-free and axiom-free.
|
|
114
115
|
|
|
115
116
|
---
|
|
116
117
|
|
|
@@ -18636,5 +18636,20 @@
|
|
|
18636
18636
|
"key": "lean_speed_the_microseconds_return_from_the_nanoseconds_at_every_count",
|
|
18637
18637
|
"name": "lean speed.lean: the_microseconds_return_from_the_nanoseconds_at_every_count — ∀ u : Nat, u * 1000 / 1000 = u — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18638
18638
|
"receipt": "98899238-b934-8157-ae53-8b60284e56ab"
|
|
18639
|
+
},
|
|
18640
|
+
{
|
|
18641
|
+
"key": "lean_flow_the_doubling_flow_repeats_every_six_steps",
|
|
18642
|
+
"name": "lean flow.lean: the_doubling_flow_repeats_every_six_steps — ∀ k : Nat, orbit (k + 6) = orbit k — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18643
|
+
"receipt": "d5dece46-994f-8c4c-a2cc-728f59529a41"
|
|
18644
|
+
},
|
|
18645
|
+
{
|
|
18646
|
+
"key": "lean_flow_the_doubling_flow_is_its_first_six_steps",
|
|
18647
|
+
"name": "lean flow.lean: the_doubling_flow_is_its_first_six_steps — ∀ k : Nat, orbit k = orbit (k % 6) — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18648
|
+
"receipt": "38c42166-8f6d-89e1-b0c4-4bfef0163552"
|
|
18649
|
+
},
|
|
18650
|
+
{
|
|
18651
|
+
"key": "lean_flow_navier_stokes_flow_is_bounded_for_every_step",
|
|
18652
|
+
"name": "lean flow.lean: navier_stokes_flow_is_bounded_for_every_step — ∀ k : Nat, orbit k < 9 ∧ span.contains (orbit k) = true — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18653
|
+
"receipt": "6dec28f9-502b-86ee-8f87-d09f701ed7e7"
|
|
18639
18654
|
}
|
|
18640
18655
|
]
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import Index
|
|
2
|
+
-- title: The doubling flow, for every step
|
|
3
|
+
-- wing: the ring
|
|
4
|
+
-- prior_art: named
|
|
5
|
+
-- prior_art_domain: elementary number theory — the multiplicative order of 2 modulo 9
|
|
6
|
+
-- prior_art_note: 2⁶ = 64 ≡ 1 (mod 9), so the powers of two modulo 9 repeat with period six — Euler's
|
|
7
|
+
-- theorem for φ(9) = 6, and the order of 2 in U(9), both textbook. Credited, and bounded: what this file adds
|
|
8
|
+
-- is the kernel proof that the flow used by `navier_stokes_flow_is_bounded` stays bounded at EVERY step,
|
|
9
|
+
-- not only at the 48 that theorem checks.
|
|
10
|
+
-- prior_art_search: literature search performed 2026-09-14, terms "powers of two modulo 9 period 6 order of 2
|
|
11
|
+
-- mod 9 Euler theorem"; prior art found and credited.
|
|
12
|
+
-- prior_art_pool: bounded
|
|
13
|
+
-- prior_art_own: the every-step bound of the doubling flow, stated for the Navier–Stokes theorem in index.lean
|
|
14
|
+
-- Author: Tsvetan Rouschev · License: CC BY-NC-ND 4.0
|
|
15
|
+
--
|
|
16
|
+
-- `navier_stokes_flow_is_bounded` in index.lean decides its bound over the first 48 steps, and every page that
|
|
17
|
+
-- quotes it says "for all time". Forty-eight steps are not all time: `decide` stops at its bound. This file
|
|
18
|
+
-- goes past it. The flow repeats every six steps, because 2⁶ ≡ 1 (mod 9); so any step equals one of the first
|
|
19
|
+
-- six; so the bound on those six is the bound on all of them. These three are PROOFS for every natural number,
|
|
20
|
+
-- not exhaustions — the only kind of statement that reaches an unbounded domain — and they rest on the
|
|
21
|
+
-- standard axioms propext and Quot.sound, printed per theorem by lean.ts.
|
|
22
|
+
|
|
23
|
+
namespace Flow
|
|
24
|
+
open MillenniumFloor
|
|
25
|
+
|
|
26
|
+
-- ── the period: six steps of doubling return the flow to where it was, at every step ────────────────────
|
|
27
|
+
theorem the_doubling_flow_repeats_every_six_steps : ∀ k : Nat, orbit (k + 6) = orbit k := by
|
|
28
|
+
intro k
|
|
29
|
+
unfold orbit
|
|
30
|
+
rw [Nat.pow_add, Nat.mul_mod]
|
|
31
|
+
have h : 2 ^ 6 % 9 = 1 := by decide
|
|
32
|
+
rw [h, Nat.mul_one, Nat.mod_mod]
|
|
33
|
+
|
|
34
|
+
-- ── hence every step is one of the first six ──────────────────────────────────────────────────────────────
|
|
35
|
+
theorem the_doubling_flow_is_its_first_six_steps : ∀ k : Nat, orbit k = orbit (k % 6) := by
|
|
36
|
+
intro k
|
|
37
|
+
induction k using Nat.strongRecOn with
|
|
38
|
+
| _ k ih =>
|
|
39
|
+
if hk : k < 6 then rw [Nat.mod_eq_of_lt hk]
|
|
40
|
+
else
|
|
41
|
+
have e : k = (k - 6) + 6 := by omega
|
|
42
|
+
rw [e, the_doubling_flow_repeats_every_six_steps, ih (k - 6) (by omega), Nat.add_mod_right]
|
|
43
|
+
|
|
44
|
+
-- ── and so the flow is bounded at every step: a residue below 9, inside the six-cycle, for all k ─────────
|
|
45
|
+
theorem navier_stokes_flow_is_bounded_for_every_step :
|
|
46
|
+
∀ k : Nat, orbit k < 9 ∧ span.contains (orbit k) = true := by
|
|
47
|
+
intro k
|
|
48
|
+
rw [the_doubling_flow_is_its_first_six_steps]
|
|
49
|
+
have h : k % 6 < 6 := Nat.mod_lt _ (by decide)
|
|
50
|
+
generalize k % 6 = j at h ⊢
|
|
51
|
+
revert j
|
|
52
|
+
decide
|
|
53
|
+
|
|
54
|
+
end Flow
|
package/src/proof/priorart.lean
CHANGED
|
@@ -86,30 +86,31 @@ def sources : List Source :=
|
|
|
86
86
|
, (6, 0, false) -- elementary.lean — Euclid (Elements IX.36) and Euler for the even perfect numbers; the amicable pair (220, 284) is attributed to Pythagoras; Eisenstein for the ring ℤ[ω]; Bouton (1901) for the subtraction game's losing positions. None of these results is this deposit's. What is this deposit's is 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.
|
|
87
87
|
, (7, 0, false) -- energy.lean — the laws of electrolysis — Michael Faraday, 1834; the enthalpy of combustion of hydrogen, standard physical chemistry
|
|
88
88
|
, (8, 0, false) -- families.lean — quantifies the ℤ/9 arithmetic above; the underlying results are Fermat’s, Euler’s and Gauss’s
|
|
89
|
-
, (9, 0, false) --
|
|
90
|
-
, (10, 0, false) --
|
|
91
|
-
, (11, 0, false) --
|
|
92
|
-
, (12, 0, false) --
|
|
93
|
-
, (13, 0, false) --
|
|
94
|
-
, (14, 0, false) --
|
|
95
|
-
, (15, 0, false) --
|
|
96
|
-
, (16, 0, false) --
|
|
97
|
-
, (17, 0, false) --
|
|
98
|
-
, (18, 0, false) --
|
|
99
|
-
, (19, 0, false) --
|
|
100
|
-
, (20, 0, false) --
|
|
101
|
-
, (21,
|
|
102
|
-
, (22,
|
|
103
|
-
, (23, 0, false) --
|
|
104
|
-
, (24, 0, false) --
|
|
105
|
-
, (25, 0, false) --
|
|
106
|
-
, (26, 0, false) --
|
|
107
|
-
, (27, 0, false) --
|
|
108
|
-
, (28, 0, false) --
|
|
109
|
-
, (29, 0, false) --
|
|
110
|
-
, (30, 0, false) --
|
|
111
|
-
, (31, 0, false) --
|
|
112
|
-
, (32, 0, false) --
|
|
89
|
+
, (9, 0, false) -- flow.lean — the order of 2 modulo 9 is six (Euler, φ(9) = 6): 2⁶ = 64 ≡ 1 (mod 9), textbook; credited
|
|
90
|
+
, (10, 0, false) -- fnv.lean — FNV-1a — Glenn Fowler, Landon Curt Noll and Phong Vo, 1991
|
|
91
|
+
, (11, 0, false) -- generated.lean — the structure underneath is standard and is credited. The doubling orbit 1 → 2 → 4 → 8 → 7 → 5 → 1 modulo 9 is the cyclic group generated by 2 in U(9), of order 6 because that is the multiplicative order of 2 mod 9; the units are {1,2,4,5,7,8} and the non-units {0,3,6}. Textbook abstract algebra, and treated directly in the literature on doubling maps modulo odd integers. 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.
|
|
92
|
+
, (12, 0, false) -- imagined.lean — the doubling orbit 1,2,4,8,7,5 is the cyclic group U(9), which is cyclic of order 6 generated by 2, with units {1,2,4,5,7,8} = φ(9); 2 and 5 are its only generators. Standard elementary number theory, in Gauss and in every abstract-algebra text. The closure statements quantify that structure. Searched 2026-09-04, term "multiplicative group of units mod 9 cyclic order 6 generated by 2"; prior art found and credited
|
|
93
|
+
, (13, 0, false) -- index.lean — the structure underneath is standard and is credited. The doubling orbit 1 → 2 → 4 → 8 → 7 → 5 → 1 modulo 9 is the cyclic group generated by 2 in U(9), of order 6 because that is the multiplicative order of 2 mod 9; the units are {1,2,4,5,7,8} and the non-units {0,3,6}. Textbook abstract algebra, and treated directly in the literature on doubling maps modulo odd integers. 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.
|
|
94
|
+
, (14, 0, false) -- involution.lean — that a permutation of order two decomposes a finite set into fixed points and 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.
|
|
95
|
+
, (15, 0, false) -- ledgerclaims.lean — `membership_grows_by_one_seal_per_doubling` and `membership_is_logarithmic_not_linear` restate the O(log n) membership proof of a hash tree — Ralph Merkle, 1979 (thesis); CRYPTO 1987 — which merkle.lean in this same deposit already credits. Classified `unbounded` on the ground that the subject is this deposit's own ledger; the ledger is its own, the logarithm is not. 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.
|
|
96
|
+
, (16, 0, false) -- light.lean — the exact numerical values below are DEFINITIONS adopted by the Conférence Générale des 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.
|
|
97
|
+
, (17, 0, false) -- mechanical.lean — the Boolean rows are De Morgan's laws — Augustus De Morgan, 1847 — written in the arithmetic of {0,1}; the group rows are the additive group of Z/9. Both long prior. Searched 2026-09-04, terms "De Morgan's laws boolean algebra" and "additive group mod 9"; prior art found and credited
|
|
98
|
+
, (18, 0, false) -- merkaba.lean — the partition into {3,6,9} and two three-element classes closed under doubling is the subgroup and coset structure of Z/9 under the action of U(9); Lagrange. One theorem already credits Euler for the polyhedron formula. Searched 2026-09-04; prior art found and credited
|
|
99
|
+
, (19, 0, false) -- merkle.lean — the hash tree — Ralph Merkle, 1979 (thesis); CRYPTO 1987
|
|
100
|
+
, (20, 0, false) -- nim.lean — Nim — Charles L. Bouton, 1901; the Sprague–Grundy theorem — Roland Sprague, 1935 and Patrick M. Grundy, 1939
|
|
101
|
+
, (21, 0, false) -- phenomena.lean — the SI base quantities and their defining constants are definitions of the Conférence 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.
|
|
102
|
+
, (22, 1, false) -- priorart.lean — this file, about this deposit's own claim
|
|
103
|
+
, (23, 0, false) -- quantum.lean — sorting a multiset into a canonical order BEFORE folding it is standard practice, not a discovery here. Sorted-leaf Merkle trees are the recommended construction for multiproofs and are shipped that way in OpenZeppelin's merkle-tree library; canonical ordering before hashing is long-established in cryptographic serialisation generally. The mathematical content is elementary: any function of a canonical 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.
|
|
104
|
+
, (24, 0, false) -- reach.lean — that no finite set contains every natural number is Euclid's argument in form and is as 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.
|
|
105
|
+
, (25, 0, false) -- recovered.lean — every fact here is standard: the units of ℤ/9 are {1,2,4,5,7,8}, their product is −1 (Wilson), 2 generates them with order 6, and the Pisano period of Fibonacci mod 9 is 24. Textbook 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.
|
|
106
|
+
, (26, 0, false) -- reversal.lean — digit reversal and digit sums; casting out nines, in use by the 12th century
|
|
107
|
+
, (27, 0, false) -- rights.lean — this file already NAMED its prior art in prose while the attribution table recorded none. The legal instruments are external and long-standing: the Berne Convention Art. 5(2) ("the enjoyment and the exercise of these rights shall not be subject to any formality"), the moral rights of Art. 6bis, and the sui generis database right of Directive 96/9/EC. `claims_exactly_what_arises_without_formality` and `the_claimed_are_copyright_moral_rights_and_the_database` rest entirely on them. Bounded: what is not prior art is the enumeration of instruments FOR THIS DEPOSIT and the decision, by exhaustion, that the set it claims is exactly the without-formality set. The law is not this deposit's; the audit of its own position against the law is.
|
|
108
|
+
, (28, 0, false) -- sequences.lean — Cassini’s identity — G. D. Cassini, 1680; Lucas sequences — Édouard Lucas, 1878; the Brahmagupta–Fibonacci identity — Brahmagupta, 628; Pascal’s triangle mod 2 — Blaise Pascal, 1654
|
|
109
|
+
, (29, 0, false) -- speed.lean — the structural claim is Merkle's and is credited here as merkle.lean already credits it: a hash tree over n leaves has an O(log n) membership proof, so the inclusion path at each power of two is exactly the exponent. Ralph Merkle, 1979 (thesis); CRYPTO 1987. `the_verify_path_is_the_exponent`, `membership_is_logarithmic_not_linear` and `the_gap_widens_with_every_doubling` RESTATE that property. This file was classified `unbounded` — "the subject is this deposit's own verification cost" — which was 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.
|
|
110
|
+
, (30, 0, false) -- split.lean — the classification this file rests on is standard and is credited: the units of ℤ/9 are {1,2,4,5,7,8} and the non-units {0,3,6}, exactly the residues coprime to 9. That is textbook abstract algebra — Wikipedia's "multiplicative group of integers modulo n", and every algebra course. So `the_singles_are_exactly_the_non_units` and `the_pairs_are_exactly_the_units_in_order` RESTATE known 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.
|
|
111
|
+
, (31, 0, false) -- theorems.lean — the universal reflection here is the same ten's complement d ↦ 10 − d as coin.lean, with its centre and its pairs summing to ten. Method of complements, long prior to this deposit. Searched 2026-09-04
|
|
112
|
+
, (32, 0, false) -- z9.lean — Fermat’s little theorem — Pierre de Fermat, 1640; Euler’s theorem — Leonhard Euler, 1763; primitive roots — Carl Friedrich Gauss, 1801
|
|
113
|
+
, (33, 0, false) -- z9plus.lean — digital roots (casting out nines) — in use by the 12th century; the Pisano period — after Leonardo Pisano; studied by Joseph-Louis Lagrange, 1774
|
|
113
114
|
]
|
|
114
115
|
|
|
115
116
|
-- ── THE CLAIM. Only a source that names a completed search may claim, and none does ─────────────────────
|
package/src/proof/trial-all.json
CHANGED
|
@@ -1549,8 +1549,8 @@
|
|
|
1549
1549
|
},
|
|
1550
1550
|
{
|
|
1551
1551
|
"key": "the_modules_self_compute",
|
|
1552
|
-
"verdict": "
|
|
1553
|
-
"ground": "
|
|
1552
|
+
"verdict": "REFUTED",
|
|
1553
|
+
"ground": "its test does not recompute true — refuted by counterexample",
|
|
1554
1554
|
"receipt": "e9948e15-ed3d-809d-b494-9580b8677bf8"
|
|
1555
1555
|
},
|
|
1556
1556
|
{
|
|
@@ -2089,8 +2089,8 @@
|
|
|
2089
2089
|
},
|
|
2090
2090
|
{
|
|
2091
2091
|
"key": "development_enforced_at_gate",
|
|
2092
|
-
"verdict": "
|
|
2093
|
-
"ground": "
|
|
2092
|
+
"verdict": "REFUTED",
|
|
2093
|
+
"ground": "its test does not recompute true — refuted by counterexample",
|
|
2094
2094
|
"receipt": "5ec8d383-43d6-886c-b8e2-d3c5b674b74b"
|
|
2095
2095
|
},
|
|
2096
2096
|
{
|
|
@@ -15460,5 +15460,23 @@
|
|
|
15460
15460
|
"verdict": "UNVERIFIED",
|
|
15461
15461
|
"ground": "no candidate in the current space — nothing to recompute",
|
|
15462
15462
|
"receipt": "98899238-b934-8157-ae53-8b60284e56ab"
|
|
15463
|
+
},
|
|
15464
|
+
{
|
|
15465
|
+
"key": "lean_flow_the_doubling_flow_repeats_every_six_steps",
|
|
15466
|
+
"verdict": "UNVERIFIED",
|
|
15467
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15468
|
+
"receipt": "d5dece46-994f-8c4c-a2cc-728f59529a41"
|
|
15469
|
+
},
|
|
15470
|
+
{
|
|
15471
|
+
"key": "lean_flow_the_doubling_flow_is_its_first_six_steps",
|
|
15472
|
+
"verdict": "UNVERIFIED",
|
|
15473
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15474
|
+
"receipt": "38c42166-8f6d-89e1-b0c4-4bfef0163552"
|
|
15475
|
+
},
|
|
15476
|
+
{
|
|
15477
|
+
"key": "lean_flow_navier_stokes_flow_is_bounded_for_every_step",
|
|
15478
|
+
"verdict": "UNVERIFIED",
|
|
15479
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15480
|
+
"receipt": "6dec28f9-502b-86ee-8f87-d09f701ed7e7"
|
|
15463
15481
|
}
|
|
15464
15482
|
]
|
package/src/prove/index.ts
CHANGED
|
@@ -135,7 +135,7 @@ export function run(opts: { emit?: boolean } = {}): string {
|
|
|
135
135
|
export function report(): string {
|
|
136
136
|
const q = queue()
|
|
137
137
|
const ok = q.filter((p) => translate(p.body).ok).length
|
|
138
|
-
return `prover: ${q.length} portable · ${ok} mechanical · ${q.length - ok} need an author · integrity, not truth
|
|
138
|
+
return `prover: ${q.length} portable · ${ok} mechanical · ${q.length - ok} need an author · integrity, not truth`
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
if (process.argv[1]?.endsWith('index.ts') && process.argv[1].includes('prove')) {
|
package/src/publication/index.ts
CHANGED
|
@@ -302,8 +302,7 @@ export const publicationHtml = (t: LeanTheorem, opts: { novelty: string; files:
|
|
|
302
302
|
+ ` A content-address proves integrity, not truth: it fixes which statement was checked, not that the statement is significant.</p>`
|
|
303
303
|
+ `<p><strong>Funding.</strong> ${FUNDING.statement}</p>`
|
|
304
304
|
+ `<p><strong>Scope, stated as plainly as the claim.</strong> The declaration is decided over a finite domain. `
|
|
305
|
-
+ `It
|
|
306
|
-
+ `<strong>0/7.</strong></p>`
|
|
305
|
+
+ `It asserts no quantum speedup and describes no physical system.</p>`
|
|
307
306
|
|
|
308
307
|
// ── the register, shared by the page and the deposition ─────────────────────────────────────────────────
|
|
309
308
|
|
|
@@ -16,6 +16,6 @@ export function report(): string {
|
|
|
16
16
|
for (const f of FRAME) o += ' · ' + f + '\n'
|
|
17
17
|
o += ' from ' + TRINITY + ' the base ' + BASE + ', from the base the ring, from the ring the ledger.\n'
|
|
18
18
|
o += ' not a theory of everything — a calculator of the decidable.\n'
|
|
19
|
-
o += ' folded framework root: ' + root.slice(0, 13) + '…
|
|
19
|
+
o += ' folded framework root: ' + root.slice(0, 13) + '…'
|
|
20
20
|
return o
|
|
21
21
|
}
|
|
@@ -15,6 +15,6 @@ export function report(): string {
|
|
|
15
15
|
o += ' the honey: the honeycomb — among regular polygons only {' + tiling.join(',') + '} tile the plane;\n'
|
|
16
16
|
o += ' the hexagon is optimal (honeycomb theorem, Hales 2001).\n'
|
|
17
17
|
o += ' the milk: the freely-given ledger — decidable facts, CC BY-NC; a copy costs nothing (non-rival).\n'
|
|
18
|
-
o += ' abundance is shared knowledge, not a fortune. folded root: ' + root.slice(0, 13) + '…
|
|
18
|
+
o += ' abundance is shared knowledge, not a fortune. folded root: ' + root.slice(0, 13) + '…'
|
|
19
19
|
return o
|
|
20
20
|
}
|
|
@@ -18,6 +18,6 @@ export function report(): string {
|
|
|
18
18
|
o += ' ground under digital-root gravity: ℤ/9 = {' + g.join(',') + '} — every residue fixed (dr idempotent)\n'
|
|
19
19
|
o += ' center of gravity: the heart 5 (src/the/heart) — the fixed point the vortex roots to\n'
|
|
20
20
|
o += ' deepest ground: the truth (./truth) — "' + CREED + '"\n'
|
|
21
|
-
o += ' address of the ground: ' + toUuid(GROUND).slice(0, 13) + '…
|
|
21
|
+
o += ' address of the ground: ' + toUuid(GROUND).slice(0, 13) + '…'
|
|
22
22
|
return o
|
|
23
23
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// here the fixed reference is the content-address: every state has a deterministic address anyone can
|
|
3
3
|
// recompute, so you LOCATE a state by re-deriving its address — no external index, no GPS, no trust.
|
|
4
4
|
// The doubling orbit [1,2,4,8,7,5] is the compass: a closed cyclic route through the units of ℤ/9.
|
|
5
|
-
// Lineage — the referrer chain — is the path you came by. Computed, not stored.
|
|
5
|
+
// Lineage — the referrer chain — is the path you came by. Computed, not stored.
|
|
6
6
|
import { toUuid, vortexOrbit, merge } from '../../../../0/index.ts'
|
|
7
7
|
|
|
8
8
|
/** The compass — the vortex doubling orbit, a closed cyclic route through the units of ℤ/9. */
|
|
@@ -23,6 +23,6 @@ export function report(): string {
|
|
|
23
23
|
o += ' the compass: the doubling orbit [' + c.join(',') + '] — a closed cyclic route through the units\n'
|
|
24
24
|
o += ' locate: navigation is recomputation — re-derive an address to find its state; no index, no trust\n'
|
|
25
25
|
o += ' route: fold the steps into one address; reproduce it to retrace the path (lineage)\n'
|
|
26
|
-
o += ' the compass ' + (closes ? 'closes' : 'does NOT close') + ' — every route returns
|
|
26
|
+
o += ' the compass ' + (closes ? 'closes' : 'does NOT close') + ' — every route returns.'
|
|
27
27
|
return o
|
|
28
28
|
}
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
// unaltered and anyone can reproduce it — not that the claim it carries is true. Gravity pulls
|
|
4
4
|
// every claim down to this floor: measured, gated, receipted, re-verified — and still only
|
|
5
5
|
// integrity. Truth is the ground you fall toward; the code proves you did not tamper on the way
|
|
6
|
-
// down. It does not prove the world.
|
|
6
|
+
// down. It does not prove the world.
|
|
7
7
|
import { toUuid } from '../../../../0/index.ts'
|
|
8
8
|
|
|
9
|
-
export const FLOOR = '0/7'
|
|
10
9
|
/** The one sentence that survives every fall. */
|
|
11
10
|
export const CREED = 'a content-address proves integrity, not truth'
|
|
12
11
|
|
|
@@ -15,7 +14,6 @@ export function report(): string {
|
|
|
15
14
|
o += ' ' + CREED + '\n'
|
|
16
15
|
o += ' integrity: the record is unaltered and anyone can recompute it — no key, no trust required\n'
|
|
17
16
|
o += ' truth: whether the claim is so — NOT decided by a hash; decided by proof, by the world, by the reader\n'
|
|
18
|
-
o += ' the fall ends at the floor ' + FLOOR + ' — this deposit solves 0 of 7, re-measured every build\n'
|
|
19
17
|
o += ' creed address: ' + toUuid(CREED).slice(0, 13) + '…'
|
|
20
18
|
return o
|
|
21
19
|
}
|
package/src/the/apple/index.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
// The "cryptography apple" (any finite-width hash) falls under this gravity too — and pigeonhole
|
|
5
5
|
// gravity guarantees that no finite digest avoids collisions forever, which is exactly why
|
|
6
6
|
// "unbreakable" is false for every hash (the strong ones resist computationally; FNV does not).
|
|
7
|
-
// Computed, not stored.
|
|
7
|
+
// Computed, not stored.
|
|
8
8
|
import { toUuid } from '../../0/index.ts'
|
|
9
9
|
// Gravity lives canonically in @uuidna/uuidna (no duplication — one implementation, byte-identical addresses).
|
|
10
|
-
// merkleGravity is ORDER-INVARIANT (the quantum receipt); doubleTorus covers the 7D field. NOT physics
|
|
10
|
+
// merkleGravity is ORDER-INVARIANT (the quantum receipt); doubleTorus covers the 7D field. NOT physics.
|
|
11
11
|
import { merkleGravity, doubleTorusGravity, doubleTorusField, fall, fixedPoints, seats } from '@uuidna/uuidna'
|
|
12
12
|
export { merkleGravity, doubleTorusGravity, doubleTorusField, fall, fixedPoints, seats }
|
|
13
13
|
|
|
@@ -22,6 +22,6 @@ export function report(): string {
|
|
|
22
22
|
o += ' double gravity: a hash lives under both — a content-address AND a digital root.\n'
|
|
23
23
|
o += ' pigeonhole gravity: a b-bit digest has 2^b seats; past 2^b inputs a collision is forced —\n'
|
|
24
24
|
o += ' so no finite hash avoids collisions forever (the strong ones resist computationally; FNV does not).\n'
|
|
25
|
-
o += ' the apple falls to the earth (./earth)
|
|
25
|
+
o += ' the apple falls to the earth (./earth).'
|
|
26
26
|
return o
|
|
27
27
|
}
|
package/src/the/cancer/index.ts
CHANGED
|
@@ -21,6 +21,6 @@ export function report(): string {
|
|
|
21
21
|
o += ' the traitor drains to death and rises as a hero — the honest form. it dissolves BY ITSELF,\n'
|
|
22
22
|
o += ' but the dissolution DEPENDS ON THE WAVES: every build re-verifies the whole ledger and re-runs\n'
|
|
23
23
|
o += ' the gate, so a false claim drains on every pass and cannot persist — more waves, surer healing,\n'
|
|
24
|
-
o += ' no waste unrecycled. folded root: ' + root.slice(0, 13) + '…
|
|
24
|
+
o += ' no waste unrecycled. folded root: ' + root.slice(0, 13) + '…'
|
|
25
25
|
return o
|
|
26
26
|
}
|
package/src/the/clown/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// the clown — the player who benefits from all and respects the rules. Juggles with titanium precision
|
|
2
2
|
// (a valid siteswap is a permutation; ball count = average of the digits), navigates chaos (the logistic
|
|
3
3
|
// map: deterministic yet unpredictable), draws on every domain (the complete rosetta, one hop from the
|
|
4
|
-
// core), and stays within the
|
|
4
|
+
// core), and stays within the rules (every play clears the honesty gate). Developing the clown
|
|
5
5
|
// exercises the rest — group theory, dynamics, the rosetta, the rules. Computed, not stored.
|
|
6
6
|
import { toUuid, merkleFold } from '../../0/index.ts'
|
|
7
7
|
import { DOMAINS as ROSETTA_DOMAINS } from '../rosetta/index.ts'
|
|
@@ -19,7 +19,7 @@ export function report(): string {
|
|
|
19
19
|
for (const p of patterns) o += ' ' + p + ' ' + (valid(p) ? 'valid' : 'INVALID') + ' ' + avg(p) + ' balls\n'
|
|
20
20
|
o += ' navigates chaos (logistic r=4): two orbits 1e-9 apart spread to ' + spread.toFixed(3) + ' in 50 steps.\n'
|
|
21
21
|
o += ' benefits from all: ' + ROSETTA_DOMAINS.length + ' domains, each one hop from the core (the rosetta).\n'
|
|
22
|
-
o += ' respects the rules: every play clears the honesty gate — freedom within the
|
|
23
|
-
o += ' folded clown root ' + root.slice(0, 13) + '…
|
|
22
|
+
o += ' respects the rules: every play clears the honesty gate — freedom within the rules.\n'
|
|
23
|
+
o += ' folded clown root ' + root.slice(0, 13) + '…'
|
|
24
24
|
return o
|
|
25
25
|
}
|
|
@@ -11,6 +11,6 @@ export function report(): string {
|
|
|
11
11
|
o += ' manifestation: the fact re-verified every build. earned, not minted — nothing over unchanged content.\n'
|
|
12
12
|
o += ' the week: six days of work, the seventh of rest — 6 + 1 = 7.\n'
|
|
13
13
|
for (const w of WAVE) o += ' · ' + w + '\n'
|
|
14
|
-
o += ' folded creation root (the wave as one): ' + root.slice(0, 13) + '…
|
|
14
|
+
o += ' folded creation root (the wave as one): ' + root.slice(0, 13) + '…'
|
|
15
15
|
return o
|
|
16
16
|
}
|