@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.
@@ -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
- theorem the_digits_are_ten : digits.length = 10 := by decide
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
  ]
@@ -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
- theorem the_coin_step_is_three_times_the_two_coins :
127
- coins = 2 ∧ coinStep = 6 ∧ coinStep = 3 * 2 := by decide
128
-
129
- theorem accounting_the_coins_on_the_last_pair :
130
- 78 = 3 * 26 ∧ 3 * (26 - coins) = 72 ∧ 72 = 8 * 9 := by decide
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
- theorem the_seal_affords_sixty_four_payments_of_two :
168
- sealBits / coins = 64 ∧ 64 = 2 ^ 6 ∧ sealBits = 64 * coins := by decide
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
- theorem the_budget_and_the_period_are_one_turn :
177
- sealBits / coins = 2 ^ 6 ∧ (2 ^ 6) % 9 = 1 := by decide
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
@@ -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
  ]