@ceccec/millennium-solutions 9.1.2 → 9.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ACCOUNTING.md +7 -7
- package/AXIOMS.md +6 -6
- package/CHALLENGES.md +11 -3
- package/PRIOR-ART.md +17 -17
- package/README.md +23 -23
- package/dashboard.md +1 -1
- package/forensic.md +4 -4
- package/index.md +23 -23
- package/package.json +1 -1
- package/paper.md +412 -377
- package/solutions.md +4 -4
- package/speedup.md +4 -4
- package/src/api/index.ts +14 -9
- package/src/proof/discovered.json +20 -0
- package/src/proof/energy.lean +7 -0
- package/src/proof/light.lean +6 -0
- package/src/proof/reach.lean +7 -0
- package/src/proof/speed.lean +5 -0
- package/src/proof/trial-all.json +24 -0
package/solutions.md
CHANGED
|
@@ -17,8 +17,8 @@ Independent work · Tsvetan Rouschev · 2026-08-04 · DOI [10.5281/zenodo.218192
|
|
|
17
17
|
|---|---|
|
|
18
18
|
| gate | 1 (holds the floor) |
|
|
19
19
|
| verdict | SEALED |
|
|
20
|
-
| supporting formulas |
|
|
21
|
-
| proof-of-verdict | `
|
|
20
|
+
| supporting formulas | 50/50 recompute true |
|
|
21
|
+
| proof-of-verdict | `89e2ec35-11c0-8fd3-ae37-bfffc1d8b32a` |
|
|
22
22
|
| solved by the deposit | 0/7 |
|
|
23
23
|
|
|
24
24
|
It reflects all seven and solves none — a bijection that relabels, it does not propagate proofs; 0/7.
|
|
@@ -32,8 +32,8 @@ Shown by what the gate drains — never asserted.
|
|
|
32
32
|
| gate | 1 |
|
|
33
33
|
| drained on | a proof-assertion phrase · token address `6f3dc604-345d…` |
|
|
34
34
|
| verdict | REFUTED |
|
|
35
|
-
| supporting formulas |
|
|
36
|
-
| proof-of-verdict | `
|
|
35
|
+
| supporting formulas | 50/50 recompute true |
|
|
36
|
+
| proof-of-verdict | `13772a66-3f9e-8157-ba0a-ee4e416286d7` |
|
|
37
37
|
|
|
38
38
|
## Domains — the seven Clay problems
|
|
39
39
|
|
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 **2577** 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. `0/7`.
|
|
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 2577 receipts by the digital root of their address, the **sparsest** region is digit
|
|
37
|
+
**3** (261) — a candidate area to examine, not a finding. The ledger is currently held
|
|
38
|
+
at **2577** (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**. `0/7`.
|
package/src/api/index.ts
CHANGED
|
@@ -136,13 +136,13 @@ export const domainOf = (statement: string): number => {
|
|
|
136
136
|
* before keys had a namespace (`lean_units_are_six`) and one after (`lean_z9_units_are_six`). Both were live
|
|
137
137
|
* and both are legitimate history, but counting a key as a theorem overstates the deposit. Those 24 second
|
|
138
138
|
* addresses were retired in favour of their namespaced form, so no theorem now carries two. The 8 `rfl`
|
|
139
|
-
* DECLARATIONS have no key at all, because seal-lean.ts seals `by decide`
|
|
139
|
+
* DECLARATIONS have no key at all, because seal-lean.ts seals exhaustions (`by decide`) and proofs, never rfl — and they are declarations,
|
|
140
140
|
* never theorems, by the definition this file states.
|
|
141
141
|
*
|
|
142
142
|
* Lean decides what a theorem is. Every count of theorems is taken from src/proof; a count of keys is
|
|
143
143
|
* called a count of keys. */
|
|
144
144
|
export interface Census {
|
|
145
|
-
theorems: number; byDecide: number; rfl: number
|
|
145
|
+
theorems: number; byDecide: number; proved: number; rfl: number
|
|
146
146
|
liveKeys: number; sealedTheorems: number; surplusKeys: number; unresolvableKeys: number; unsealed: number
|
|
147
147
|
}
|
|
148
148
|
|
|
@@ -237,16 +237,20 @@ export const clayFloor = (): ClayFloor => {
|
|
|
237
237
|
* declared constant proves the declaration and nothing else — it is not evidence." That is why seal-lean
|
|
238
238
|
* seals `by decide` and refuses `rfl`, and it is the line taken here.
|
|
239
239
|
*
|
|
240
|
-
* A THEOREM OF THIS DEPOSIT is a declaration in src/proof that the Lean kernel accepts, free of `sorry
|
|
241
|
-
* and
|
|
242
|
-
*
|
|
243
|
-
*
|
|
244
|
-
*
|
|
240
|
+
* A THEOREM OF THIS DEPOSIT is a declaration in src/proof that the Lean kernel accepts, free of `sorry`,
|
|
241
|
+
* and closed EITHER by exhaustion over a stated finite domain with no axiom at all, OR by a proof for every
|
|
242
|
+
* value resting only on the standard axioms propext and Quot.sound (lean.ts refuses anything else). The
|
|
243
|
+
* second kind was added 2026-09-14 — the user: "Go", on making real kernel proofs sealable — and seal-lean
|
|
244
|
+
* seals both, each marked as what it is. A declaration closed by `rfl` is a definitional unfolding and is
|
|
245
|
+
* counted separately, never as a theorem. A key is an address and an entry is a receipt; neither is a
|
|
246
|
+
* theorem, and scripts/contradictions.ts fails the build when either count is printed next to the word.
|
|
247
|
+
* (The first deploy after the proofs landed failed on exactly this: PRIOR-ART.md counted 629 sealed
|
|
248
|
+
* theorems while this count still read 625 exhaustions.) */
|
|
245
249
|
export const THEOREM_DEFINITION =
|
|
246
|
-
'a declaration in src/proof that the Lean kernel accepts — sorry-free
|
|
250
|
+
'a declaration in src/proof that the Lean kernel accepts — sorry-free — and closes either by exhaustion over a stated finite domain with no axiom, or by a proof for every value on the standard axioms propext and Quot.sound'
|
|
247
251
|
|
|
248
252
|
/** The count that definition yields. Everything reporting "theorems" should read this. */
|
|
249
|
-
export const theoremCount = (): number => census().byDecide
|
|
253
|
+
export const theoremCount = (): number => { const c = census(); return c.byDecide + c.proved }
|
|
250
254
|
|
|
251
255
|
/** THE DIGIT SPLIT, read off src/proof/split.lean rather than retyped.
|
|
252
256
|
*
|
|
@@ -303,6 +307,7 @@ export const census = (): Census => {
|
|
|
303
307
|
return {
|
|
304
308
|
theorems: T.length,
|
|
305
309
|
byDecide: T.filter((t) => t.tactic === 'by decide').length,
|
|
310
|
+
proved: T.filter((t) => t.tactic !== 'by decide' && t.tactic !== 'rfl').length,
|
|
306
311
|
rfl: T.filter((t) => t.tactic === 'rfl').length,
|
|
307
312
|
liveKeys: keys.length,
|
|
308
313
|
sealedTheorems: named.size,
|
|
@@ -18616,5 +18616,25 @@
|
|
|
18616
18616
|
"key": "lean_z9_the_orbit_step_is_read_back_by_its_log",
|
|
18617
18617
|
"name": "lean z9.lean: the_orbit_step_is_read_back_by_its_log — (List.range 6).all (fun k => logOrbit (orbit k) == some k) ∧ units.all (fun u => (logOrbit u).map orbit == some u) — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
18618
18618
|
"receipt": "e29d831e-5bde-8104-95bd-fc374ac46155"
|
|
18619
|
+
},
|
|
18620
|
+
{
|
|
18621
|
+
"key": "lean_energy_splitting_then_burning_is_the_identity_at_every_ledger_value",
|
|
18622
|
+
"name": "lean energy.lean: splitting_then_burning_is_the_identity_at_every_ledger_value — ∀ e : Nat, burnE (splitE e) = e — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18623
|
+
"receipt": "2105157a-992b-8d52-8c5d-b7103bc12c7a"
|
|
18624
|
+
},
|
|
18625
|
+
{
|
|
18626
|
+
"key": "lean_light_the_second_returns_from_the_metre_and_the_period_at_every_duration",
|
|
18627
|
+
"name": "lean light.lean: the_second_returns_from_the_metre_and_the_period_at_every_duration — ∀ s : Nat, travel s / c = s ∧ periods s / dNuCs = s — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18628
|
+
"receipt": "e6d8871f-bee4-8268-a94a-bdd31fdd6302"
|
|
18629
|
+
},
|
|
18630
|
+
{
|
|
18631
|
+
"key": "lean_reach_the_predecessor_returns_every_successor",
|
|
18632
|
+
"name": "lean reach.lean: the_predecessor_returns_every_successor — ∀ n : Nat, (n + 1) - 1 = n — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18633
|
+
"receipt": "a1d55ab6-baca-8250-a413-285dc2cc2d5c"
|
|
18634
|
+
},
|
|
18635
|
+
{
|
|
18636
|
+
"key": "lean_speed_the_microseconds_return_from_the_nanoseconds_at_every_count",
|
|
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
|
+
"receipt": "98899238-b934-8157-ae53-8b60284e56ab"
|
|
18619
18639
|
}
|
|
18620
18640
|
]
|
package/src/proof/energy.lean
CHANGED
|
@@ -178,6 +178,13 @@ def burnE (e : Nat) : Nat := e - bondHundredthsKJ
|
|
|
178
178
|
theorem splitting_then_burning_is_the_identity_at_the_ideal :
|
|
179
179
|
(List.range 1000).all (fun e => burnE (splitE e) == e) ∧ pct burnYield splitCost = 23 := by decide
|
|
180
180
|
|
|
181
|
+
-- ── AND AT EVERY LEDGER VALUE, NOT A THOUSAND OF THEM. The theorem above decides the round trip below 1000;
|
|
182
|
+
-- this one PROVES it for every natural number, by the cancellation law of addition. A proof, not an
|
|
183
|
+
-- exhaustion — so it carries the standard axiom propext that core's lemmas rest on, and lean.ts prints it. ──
|
|
184
|
+
theorem splitting_then_burning_is_the_identity_at_every_ledger_value :
|
|
185
|
+
∀ e : Nat, burnE (splitE e) = e := by
|
|
186
|
+
intro e; exact Nat.add_sub_cancel e bondHundredthsKJ
|
|
187
|
+
|
|
181
188
|
-- ── WHAT A BUILDER RUNS INTO NEXT ────────────────────────────────────────────────────────────────────────
|
|
182
189
|
-- The stoichiometry above is exact and favourable; these are the numbers that decide whether the machine can
|
|
183
190
|
-- be built rather than whether it balances. They are the reason hydrogen systems are hard even when the
|
package/src/proof/light.lean
CHANGED
|
@@ -59,6 +59,12 @@ theorem travel_at_one_returns_the_defined_constant : travel 1 = c := by decide
|
|
|
59
59
|
theorem the_second_returns_from_the_metre_and_the_period :
|
|
60
60
|
(List.range 100).all (fun s => travel s / c == s && periods s / dNuCs == s) := by decide
|
|
61
61
|
|
|
62
|
+
-- And at EVERY duration, proved rather than decided: dividing by the constant that defines the map cancels it,
|
|
63
|
+
-- whatever the number of seconds. The standard axiom propext is carried and printed by lean.ts.
|
|
64
|
+
theorem the_second_returns_from_the_metre_and_the_period_at_every_duration :
|
|
65
|
+
∀ s : Nat, travel s / c = s ∧ periods s / dNuCs = s := by
|
|
66
|
+
intro s; exact ⟨Nat.mul_div_cancel_left s (by decide), Nat.mul_div_cancel_left s (by decide)⟩
|
|
67
|
+
|
|
62
68
|
-- ONE INTERVAL, TWO UNITS: the same second is 299792458 metres of light and 9192631770 caesium periods.
|
|
63
69
|
-- That is the SI's join between space and time, and it is an identity between two definitions rather than
|
|
64
70
|
-- a discovery about either.
|
package/src/proof/reach.lean
CHANGED
|
@@ -61,6 +61,13 @@ theorem the_successor_leaves_every_domain_and_the_predecessor_returns :
|
|
|
61
61
|
(bounds ++ [largestDomainHere]).all (fun n =>
|
|
62
62
|
n + 1 > n && (n + 1) - 1 == n && (n + 1) % 2 != n % 2) := by decide
|
|
63
63
|
|
|
64
|
+
-- ── AND FOR EVERY n, WHICH NO EXHAUSTION ABOVE CAN SAY. The file's point is that `decide` stops at its bound;
|
|
65
|
+
-- this is what goes past it: a PROOF that the predecessor returns every successor, for all naturals at once.
|
|
66
|
+
-- It is the only kind of statement that reaches an unbounded domain, and it rests on the standard axiom
|
|
67
|
+
-- propext, printed by lean.ts. ──
|
|
68
|
+
theorem the_predecessor_returns_every_successor : ∀ n : Nat, (n + 1) - 1 = n := by
|
|
69
|
+
intro n; exact Nat.add_sub_cancel n 1
|
|
70
|
+
|
|
64
71
|
-- ── 5 · A THEOREM NAMED FOR THE CLAY PROBLEMS THAT DECIDED NOTHING ABOUT THEM — DELETED ─────────────────
|
|
65
72
|
-- `this_file_settles_none_of_the_seven` stood here and decided:
|
|
66
73
|
--
|
package/src/proof/speed.lean
CHANGED
|
@@ -88,6 +88,11 @@ theorem verification_grows_it_is_not_constant :
|
|
|
88
88
|
-- the ledger next to the impressive one rather than only the impressive one being quotable. ──
|
|
89
89
|
-- The nanosecond figure is not a second typed input: it is the microsecond input converted, and the
|
|
90
90
|
-- conversion reads back at every microsecond count below a thousand. ──
|
|
91
|
+
-- ── The conversion reads back at EVERY count, proved rather than sampled — the theorem below it decides the
|
|
92
|
+
-- first thousand. A proof over all naturals, carrying the standard axiom propext (printed by lean.ts). ──
|
|
93
|
+
theorem the_microseconds_return_from_the_nanoseconds_at_every_count : ∀ u : Nat, u * 1000 / 1000 = u := by
|
|
94
|
+
intro u; exact Nat.mul_div_cancel u (by decide)
|
|
95
|
+
|
|
91
96
|
theorem the_verify_in_nanoseconds_reads_back_its_microseconds :
|
|
92
97
|
(List.range 1000).all (fun u => u * 1000 / 1000 == u) ∧
|
|
93
98
|
nsPerVerify = verifyUs * 1000 ∧ nsPerVerify / 1000 = verifyUs ∧ nsPerVerify > 10000 := by decide
|
package/src/proof/trial-all.json
CHANGED
|
@@ -15436,5 +15436,29 @@
|
|
|
15436
15436
|
"verdict": "UNVERIFIED",
|
|
15437
15437
|
"ground": "no candidate in the current space — nothing to recompute",
|
|
15438
15438
|
"receipt": "e29d831e-5bde-8104-95bd-fc374ac46155"
|
|
15439
|
+
},
|
|
15440
|
+
{
|
|
15441
|
+
"key": "lean_energy_splitting_then_burning_is_the_identity_at_every_ledger_value",
|
|
15442
|
+
"verdict": "UNVERIFIED",
|
|
15443
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15444
|
+
"receipt": "2105157a-992b-8d52-8c5d-b7103bc12c7a"
|
|
15445
|
+
},
|
|
15446
|
+
{
|
|
15447
|
+
"key": "lean_light_the_second_returns_from_the_metre_and_the_period_at_every_duration",
|
|
15448
|
+
"verdict": "UNVERIFIED",
|
|
15449
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15450
|
+
"receipt": "e6d8871f-bee4-8268-a94a-bdd31fdd6302"
|
|
15451
|
+
},
|
|
15452
|
+
{
|
|
15453
|
+
"key": "lean_reach_the_predecessor_returns_every_successor",
|
|
15454
|
+
"verdict": "UNVERIFIED",
|
|
15455
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15456
|
+
"receipt": "a1d55ab6-baca-8250-a413-285dc2cc2d5c"
|
|
15457
|
+
},
|
|
15458
|
+
{
|
|
15459
|
+
"key": "lean_speed_the_microseconds_return_from_the_nanoseconds_at_every_count",
|
|
15460
|
+
"verdict": "UNVERIFIED",
|
|
15461
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15462
|
+
"receipt": "98899238-b934-8157-ae53-8b60284e56ab"
|
|
15439
15463
|
}
|
|
15440
15464
|
]
|