@ceccec/millennium-solutions 9.0.7 → 9.0.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/CHALLENGES.md +19 -12
- package/README.md +13 -13
- package/forensic.md +6 -6
- package/index.md +13 -13
- package/package.json +1 -1
- package/paper.md +43 -40
- package/src/proof/coin.lean +5 -1
- package/src/proof/discovered.json +40 -5
- package/src/proof/split.lean +20 -9
- package/src/proof/trial-all.json +30 -0
package/src/proof/coin.lean
CHANGED
|
@@ -143,6 +143,10 @@ theorem what_escapes_falls_back_inside :
|
|
|
143
143
|
-- filled with claims about the sky. Whether a proposition names a physical quantity is a fact about this
|
|
144
144
|
-- file's TEXT, and Lean cannot read its own text. The refusal now lives in `contradictions.ts`, which reads
|
|
145
145
|
-- the propositions and can go red. What is kept here is the conjunct that was always read off a real list.
|
|
146
|
-
|
|
146
|
+
-- The nines complement pairs the ten digits: d ↦ 9 − d maps them onto themselves, undoes itself and fixes none,
|
|
147
|
+
-- so they fall into five pairs — the ten is the size of the pairing, not a length typed beside it.
|
|
148
|
+
theorem the_nines_complement_pairs_the_ten_digits :
|
|
149
|
+
digits.all (fun d => digits.contains (9 - d) && 9 - (9 - d) == d && 9 - d != d)
|
|
150
|
+
∧ (digits.filter (fun d => d < 9 - d)).length * 2 = digits.length := by decide
|
|
147
151
|
|
|
148
152
|
end Coin
|
|
@@ -17499,12 +17499,16 @@
|
|
|
17499
17499
|
{
|
|
17500
17500
|
"key": "lean_split_the_coin_step_is_three_times_the_two_coins",
|
|
17501
17501
|
"name": "lean split.lean: the_coin_step_is_three_times_the_two_coins — coins = 2 ∧ coinStep = 6 ∧ coinStep = 3 * 2 — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
17502
|
-
"receipt": "9b87b34f-1d05-8b8c-b1df-35651fcf5da9"
|
|
17502
|
+
"receipt": "9b87b34f-1d05-8b8c-b1df-35651fcf5da9",
|
|
17503
|
+
"revoked": true,
|
|
17504
|
+
"reason": "orphaned: the theorem this key was sealed from is no longer in src/proof. It was deleted or renamed, so nothing recomputes it and no kernel run confirms it. Revoked in place — the receipt stays in the append-only chain, the claim does not stand."
|
|
17503
17505
|
},
|
|
17504
17506
|
{
|
|
17505
17507
|
"key": "lean_split_accounting_the_coins_on_the_last_pair",
|
|
17506
17508
|
"name": "lean split.lean: accounting_the_coins_on_the_last_pair — 78 = 3 * 26 ∧ 3 * (26 - coins) = 72 ∧ 72 = 8 * 9 — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
17507
|
-
"receipt": "758b6f0c-0b43-8808-ab33-9680674d78b2"
|
|
17509
|
+
"receipt": "758b6f0c-0b43-8808-ab33-9680674d78b2",
|
|
17510
|
+
"revoked": true,
|
|
17511
|
+
"reason": "orphaned: the theorem this key was sealed from is no longer in src/proof. It was deleted or renamed, so nothing recomputes it and no kernel run confirms it. Revoked in place — the receipt stays in the append-only chain, the claim does not stand."
|
|
17508
17512
|
},
|
|
17509
17513
|
{
|
|
17510
17514
|
"key": "lean_split_the_exhaustible_tokens_are_those_six_divides",
|
|
@@ -17529,7 +17533,9 @@
|
|
|
17529
17533
|
{
|
|
17530
17534
|
"key": "lean_split_the_seal_affords_sixty_four_payments_of_two",
|
|
17531
17535
|
"name": "lean split.lean: the_seal_affords_sixty_four_payments_of_two — sealBits / coins = 64 ∧ 64 = 2 ^ 6 ∧ sealBits = 64 * coins — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
17532
|
-
"receipt": "983dd276-c1a1-88ba-9892-6904be2c16f4"
|
|
17536
|
+
"receipt": "983dd276-c1a1-88ba-9892-6904be2c16f4",
|
|
17537
|
+
"revoked": true,
|
|
17538
|
+
"reason": "orphaned: the theorem this key was sealed from is no longer in src/proof. It was deleted or renamed, so nothing recomputes it and no kernel run confirms it. Revoked in place — the receipt stays in the append-only chain, the claim does not stand."
|
|
17533
17539
|
},
|
|
17534
17540
|
{
|
|
17535
17541
|
"key": "lean_split_sixty_four_is_where_the_doubling_returns",
|
|
@@ -17539,7 +17545,9 @@
|
|
|
17539
17545
|
{
|
|
17540
17546
|
"key": "lean_split_the_budget_and_the_period_are_one_turn",
|
|
17541
17547
|
"name": "lean split.lean: the_budget_and_the_period_are_one_turn — sealBits / coins = 2 ^ 6 ∧ (2 ^ 6) % 9 = 1 — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
17542
|
-
"receipt": "c595d67b-fa66-8f5f-8077-a3a0c8432c3b"
|
|
17548
|
+
"receipt": "c595d67b-fa66-8f5f-8077-a3a0c8432c3b",
|
|
17549
|
+
"revoked": true,
|
|
17550
|
+
"reason": "orphaned: the theorem this key was sealed from is no longer in src/proof. It was deleted or renamed, so nothing recomputes it and no kernel run confirms it. Revoked in place — the receipt stays in the append-only chain, the claim does not stand."
|
|
17543
17551
|
},
|
|
17544
17552
|
{
|
|
17545
17553
|
"key": "lean_coin_the_reflection_is_an_involution",
|
|
@@ -17790,7 +17798,9 @@
|
|
|
17790
17798
|
{
|
|
17791
17799
|
"key": "lean_coin_the_digits_are_ten",
|
|
17792
17800
|
"name": "lean coin.lean: the_digits_are_ten — digits.length = 10 — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
17793
|
-
"receipt": "bdd50a11-7fb4-82c4-b8ee-d588c40b6cc2"
|
|
17801
|
+
"receipt": "bdd50a11-7fb4-82c4-b8ee-d588c40b6cc2",
|
|
17802
|
+
"revoked": true,
|
|
17803
|
+
"reason": "orphaned: the theorem this key was sealed from is no longer in src/proof. It was deleted or renamed, so nothing recomputes it and no kernel run confirms it. Revoked in place — the receipt stays in the append-only chain, the claim does not stand."
|
|
17794
17804
|
},
|
|
17795
17805
|
{
|
|
17796
17806
|
"key": "lean_light_travel_at_one_returns_the_defined_constant",
|
|
@@ -18419,5 +18429,30 @@
|
|
|
18419
18429
|
"key": "lean_elementary_the_unit_graph_is_complete_bipartite_between_the_two_tetrahedra",
|
|
18420
18430
|
"name": "lean elementary.lean: the_unit_graph_is_complete_bipartite_between_the_two_tetrahedra — (tetOf 1).length = 3 ∧ (tetOf 2).length = 3 ∧ (tetOf 1).all (fun d => (nbrs (unitsMod 9) d).length == 3 && (nbrs (unitsMod 9) d).all (fun t => (tetOf 2).contains t)) ∧ (tetOf 2).all (fun d => (nbrs (unitsMod 9) d).length == 3 && (nbrs (unit… — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
18421
18431
|
"receipt": "19e4c01e-8d78-8ee5-8003-bcbbce30ce79"
|
|
18432
|
+
},
|
|
18433
|
+
{
|
|
18434
|
+
"key": "lean_coin_the_nines_complement_pairs_the_ten_digits",
|
|
18435
|
+
"name": "lean coin.lean: the_nines_complement_pairs_the_ten_digits — digits.all (fun d => digits.contains (9 - d) && 9 - (9 - d) == d && 9 - d != d) ∧ (digits.filter (fun d => d < 9 - d)).length * 2 = digits.length — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
18436
|
+
"receipt": "4f280944-1969-89d7-951d-0861c1dae315"
|
|
18437
|
+
},
|
|
18438
|
+
{
|
|
18439
|
+
"key": "lean_split_the_coin_step_and_the_coins_are_inverse",
|
|
18440
|
+
"name": "lean split.lean: the_coin_step_and_the_coins_are_inverse — ((List.range 20).all (fun c => 3 * c / 3 == c && (3 * c) % 3 == 0)) ∧ coinStep = 3 * coins ∧ coinStep / 3 = coins — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
18441
|
+
"receipt": "1dd0f6d3-af8e-8fe5-8a17-5e4d06a303f8"
|
|
18442
|
+
},
|
|
18443
|
+
{
|
|
18444
|
+
"key": "lean_split_paying_and_refunding_coins_on_the_last_pair_round_trips",
|
|
18445
|
+
"name": "lean split.lean: paying_and_refunding_coins_on_the_last_pair_round_trips — ((List.range 27).all (fun k => 3 * (26 - k) + 3 * k == 78)) ∧ 3 * (26 - coins) = 72 ∧ 72 = 8 * 9 — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
18446
|
+
"receipt": "d09b81fa-777d-8844-bfae-e43143c32ed6"
|
|
18447
|
+
},
|
|
18448
|
+
{
|
|
18449
|
+
"key": "lean_split_a_seal_divides_into_payments_and_multiplies_back",
|
|
18450
|
+
"name": "lean split.lean: a_seal_divides_into_payments_and_multiplies_back — ([1, 2, 4, 8, 16, 32, 64, 128].all (fun c => (sealBits / c) * c == sealBits && sealBits / (sealBits / c) == c)) ∧ sealBits / coins = 2 ^ 6 — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
18451
|
+
"receipt": "1984d72b-4263-87d9-bfd6-70a282ac37ab"
|
|
18452
|
+
},
|
|
18453
|
+
{
|
|
18454
|
+
"key": "lean_split_the_orbit_turns_once_per_budget",
|
|
18455
|
+
"name": "lean split.lean: the_orbit_turns_once_per_budget — ((List.range 60).all (fun n => 2 ^ (n + 6) % 9 == 2 ^ n % 9)) ∧ 2 ^ 6 = sealBits / coins — decided by the Lean kernel over its whole finite domain, axiom-free",
|
|
18456
|
+
"receipt": "35d5dc48-cbc0-8b91-aaaf-2976834a5f5f"
|
|
18422
18457
|
}
|
|
18423
18458
|
]
|
package/src/proof/split.lean
CHANGED
|
@@ -123,11 +123,17 @@ theorem every_root_is_a_single :
|
|
|
123
123
|
def coins : Nat := 2
|
|
124
124
|
def coinStep : Nat := 3 * coins
|
|
125
125
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
-- The coin step and the coins are INVERSE: tripling and dividing by three undo each other at every count below
|
|
127
|
+
-- twenty, and the step is the instance at the two coins — derived by the law, not typed beside it.
|
|
128
|
+
theorem the_coin_step_and_the_coins_are_inverse :
|
|
129
|
+
((List.range 20).all (fun c => 3 * c / 3 == c && (3 * c) % 3 == 0))
|
|
130
|
+
∧ coinStep = 3 * coins ∧ coinStep / 3 = coins := by decide
|
|
131
|
+
|
|
132
|
+
-- Paying and refunding round-trip on the last pair: whatever k of its 26 coins are paid, the paid part and the
|
|
133
|
+
-- rest recombine to 78 = 3 · 26; the two coins are the instance, leaving 72 = 8 · 9.
|
|
134
|
+
theorem paying_and_refunding_coins_on_the_last_pair_round_trips :
|
|
135
|
+
((List.range 27).all (fun k => 3 * (26 - k) + 3 * k == 78))
|
|
136
|
+
∧ 3 * (26 - coins) = 72 ∧ 72 = 8 * 9 := by decide
|
|
131
137
|
|
|
132
138
|
-- The two classes, named rather than counted.
|
|
133
139
|
theorem the_exhaustible_tokens_are_those_six_divides :
|
|
@@ -164,8 +170,11 @@ theorem inside_this_ideal_the_bare_coin_sorts_as_the_scaled_one :
|
|
|
164
170
|
-- orbit the whole deposit is built on, and paying the two coins buys exactly one step of it.
|
|
165
171
|
def sealBits : Nat := 128
|
|
166
172
|
|
|
167
|
-
|
|
168
|
-
|
|
173
|
+
-- A seal divides into payments and multiplies back: for every power of two up to the seal, splitting the seal
|
|
174
|
+
-- into that many parts and recombining them returns it; the two coins are the instance, 64 = 2 ^ 6 payments.
|
|
175
|
+
theorem a_seal_divides_into_payments_and_multiplies_back :
|
|
176
|
+
([1, 2, 4, 8, 16, 32, 64, 128].all (fun c => (sealBits / c) * c == sealBits && sealBits / (sealBits / c) == c))
|
|
177
|
+
∧ sealBits / coins = 2 ^ 6 := by decide
|
|
169
178
|
|
|
170
179
|
theorem sixty_four_is_where_the_doubling_returns :
|
|
171
180
|
(2 ^ 6) % 9 = 1
|
|
@@ -173,8 +182,10 @@ theorem sixty_four_is_where_the_doubling_returns :
|
|
|
173
182
|
∧ ((List.range' 1 5).all (fun k => (2 ^ k) % 9 != 1)) := by decide
|
|
174
183
|
|
|
175
184
|
-- The two readings meet: the budget a seal affords and the period of the orbit are the same six.
|
|
176
|
-
|
|
177
|
-
|
|
185
|
+
-- The orbit turns once per budget: doubling returns to the same residue after six steps at every one of the first
|
|
186
|
+
-- sixty, and the budget a seal affords is two to that six.
|
|
187
|
+
theorem the_orbit_turns_once_per_budget :
|
|
188
|
+
((List.range 60).all (fun n => 2 ^ (n + 6) % 9 == 2 ^ n % 9)) ∧ 2 ^ 6 = sealBits / coins := by decide
|
|
178
189
|
|
|
179
190
|
|
|
180
191
|
end Split
|
package/src/proof/trial-all.json
CHANGED
|
@@ -15256,5 +15256,35 @@
|
|
|
15256
15256
|
"verdict": "UNVERIFIED",
|
|
15257
15257
|
"ground": "no candidate in the current space — nothing to recompute",
|
|
15258
15258
|
"receipt": "19e4c01e-8d78-8ee5-8003-bcbbce30ce79"
|
|
15259
|
+
},
|
|
15260
|
+
{
|
|
15261
|
+
"key": "lean_coin_the_nines_complement_pairs_the_ten_digits",
|
|
15262
|
+
"verdict": "UNVERIFIED",
|
|
15263
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15264
|
+
"receipt": "4f280944-1969-89d7-951d-0861c1dae315"
|
|
15265
|
+
},
|
|
15266
|
+
{
|
|
15267
|
+
"key": "lean_split_the_coin_step_and_the_coins_are_inverse",
|
|
15268
|
+
"verdict": "UNVERIFIED",
|
|
15269
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15270
|
+
"receipt": "1dd0f6d3-af8e-8fe5-8a17-5e4d06a303f8"
|
|
15271
|
+
},
|
|
15272
|
+
{
|
|
15273
|
+
"key": "lean_split_paying_and_refunding_coins_on_the_last_pair_round_trips",
|
|
15274
|
+
"verdict": "UNVERIFIED",
|
|
15275
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15276
|
+
"receipt": "d09b81fa-777d-8844-bfae-e43143c32ed6"
|
|
15277
|
+
},
|
|
15278
|
+
{
|
|
15279
|
+
"key": "lean_split_a_seal_divides_into_payments_and_multiplies_back",
|
|
15280
|
+
"verdict": "UNVERIFIED",
|
|
15281
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15282
|
+
"receipt": "1984d72b-4263-87d9-bfd6-70a282ac37ab"
|
|
15283
|
+
},
|
|
15284
|
+
{
|
|
15285
|
+
"key": "lean_split_the_orbit_turns_once_per_budget",
|
|
15286
|
+
"verdict": "UNVERIFIED",
|
|
15287
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15288
|
+
"receipt": "35d5dc48-cbc0-8b91-aaaf-2976834a5f5f"
|
|
15259
15289
|
}
|
|
15260
15290
|
]
|