@ceccec/millennium-solutions 9.0.9 → 9.1.1

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/AXIOMS.md CHANGED
@@ -9,7 +9,7 @@ axiom fails the build rather than earning a footnote. All **628** report the sam
9
9
  *does not depend on any axioms*.
10
10
 
11
11
  That is a real property, and it is not the whole picture. **Axiom-free is not assumption-free.** These
12
- theorems rest on **306** definitions, and every one of them is a choice. A theorem about
12
+ theorems rest on **319** definitions, and every one of them is a choice. A theorem about
13
13
  `fall` is a theorem about the digital root only because `fall` is *defined* to be it. Both halves are
14
14
  indexed below, and the second is the longer one.
15
15
 
@@ -90,7 +90,7 @@ The pins in the control fixture follow the community practice of guarding `#prin
90
90
  `#guard_msgs`, which turns the axiom footprint into an executable regression test: the assertion is
91
91
  checked by the elaborator, and drift fails the build with a mismatch instead of passing unnoticed.
92
92
 
93
- ## What IS assumed: the 306 definitions
93
+ ## What IS assumed: the 319 definitions
94
94
 
95
95
  Each of these is a primitive of this deposit — not derived, not proved, chosen. They are listed in full
96
96
  because a reader checking a theorem must be able to read the definition it is about, and because a
@@ -210,27 +210,39 @@ def tetOf (r : Nat) : List Nat := (unitsMod 9).filter (fun d => d % 3 == r)
210
210
  def settledHere : Nat := 31
211
211
  ```
212
212
 
213
- ### `energy.lean` — 18 definition(s), 19 theorem(s)
213
+ ### `energy.lean` — 30 definition(s), 19 theorem(s)
214
214
 
215
215
  ```lean
216
216
  def splitCost : Nat := 52000 -- Wh to electrolyse 1 kg H₂ (real cells: 50–55 kWh/kg; ideal is ~39.4)
217
217
  def burnYield : Nat := 12000 -- Wh recovered burning it at ~35% engine efficiency (LHV 33.3 kWh/kg)
218
218
  def waterOut : Nat := 9 -- litres: 1 kg H₂ + 8 kg O₂ → 9 kg H₂O, the whole point of the exhaust
219
219
  def roPerLitre : Nat := 4 -- Wh/litre for reverse osmosis, the ordinary way to clean a litre of water
220
+ def pct (part whole : Nat) : Nat := part * 100 / whole
220
221
  def mgH2 : Nat := 2016 -- H₂ = 2 × 1.008 g/mol
221
222
  def mgO2 : Nat := 31998 -- O₂ = 2 × 15.999 g/mol
222
223
  def mgH2O : Nat := 18015 -- H₂O = 18.015 g/mol
224
+ def mgH : Nat := 1008
225
+ def mgO : Nat := 15999
226
+ def mass (h o : Nat) : Nat := h * mgH + o * mgO
223
227
  def balances (a b c : Nat) : Bool := (2 * a == 2 * b) && (a == 2 * c)
224
228
  def atomsH2 : Nat × Nat := (2, 0)
225
229
  def atomsO2 : Nat × Nat := (0, 2)
226
230
  def atomsH2O : Nat × Nat := (2, 1)
231
+ def per10k (part whole : Nat) : Nat := part * 10000 / whole
232
+ def bondHundredthsKJ : Nat := 28583 -- ΔH°f of liquid water, 285.83 kJ/mol, in hundredths
233
+ def splitE (e : Nat) : Nat := e + bondHundredthsKJ
234
+ def burnE (e : Nat) : Nat := e - bondHundredthsKJ
227
235
  def molH2 : Nat := 496 -- moles in 1 kg of H₂ (1000 g ÷ 2.016)
228
236
  def molO2 : Nat := 248 -- the oxygen that comes with it, half as many moles
229
237
  def mLperMol : Nat := 22414 -- millilitres per mole at STP
230
238
  def whPerKgH2 : Nat := 33300 -- lower heating value, Wh per kg
231
239
  def petrolWhL : Nat := 9700 -- Wh per litre of petrol, for scale
240
+ def litresOf (mol : Nat) : Nat := mol * mLperMol / 1000
241
+ def molesOf (l : Nat) : Nat := l * 1000 / mLperMol
242
+ def whPerLitreAt (kgPerM3 : Nat) : Nat := kgPerM3 * whPerKgH2 / 1000
232
243
  def tdsSeawater : Nat := 35000 -- mg of dissolved solids per litre
233
244
  def tdsTapWater : Nat := 50 -- mg per litre, ordinary supply
245
+ def residueMg (litres tds : Nat) : Nat := litres * tds
234
246
  ```
235
247
 
236
248
  ### `families.lean` — 44 definition(s), 41 theorem(s)
@@ -488,7 +500,7 @@ def popcount (n : Nat) : Nat := (List.range 12).foldl (fun a i => a + n / 2 ^ i
488
500
  def tm (n : Nat) : Nat := popcount n % 2
489
501
  ```
490
502
 
491
- ### `speed.lean` — 7 definition(s), 10 theorem(s)
503
+ ### `speed.lean` — 8 definition(s), 10 theorem(s)
492
504
 
493
505
  ```lean
494
506
  def recomputeUs : Nat := 21582900 -- folding 2^20 leaves
@@ -498,6 +510,7 @@ def hexChars : Nat := 32 -- an address in the 8-bit hex form fixed by RFC 95
498
510
  def hexbitChars : Nat := 22 -- the same address over the 64-hexagram lattice
499
511
  def hexMs : Nat := 16 -- median ms for 200,000 encodings, 8-bit table
500
512
  def hexbitMs : Nat := 30 -- the same work, 6-bit lattice
513
+ def charsFor (b : Nat) : Nat := (128 + b - 1) / b
501
514
  ```
502
515
 
503
516
  ### `split.lean` — 8 definition(s), 19 theorem(s)
@@ -554,6 +567,6 @@ def gcd9 (a b : Nat) : Nat := gcdF (a + b + 1) a b
554
567
 
555
568
  ---
556
569
 
557
- **628** declarations, **0** axiom dependencies, **306** definitions they rest on.
570
+ **628** declarations, **0** axiom dependencies, **319** definitions they rest on.
558
571
  A content-address proves integrity, not truth, and an axiom index proves neither: it states what was
559
572
  assumed, so a reader can disagree with the assumptions rather than guess at them. `0/7`.
package/CHALLENGES.md CHANGED
@@ -18,7 +18,7 @@ title: Challenges
18
18
 
19
19
  **Humanity: 1 / 7** (6 open). **This deposit: 0 / 7** — it settles none of the seven itself.
20
20
 
21
- ## Discovered theorems (decidable, over ℤ/9) — 2548 standing in 1 families
21
+ ## Discovered theorems (decidable, over ℤ/9) — 2567 standing in 1 families
22
22
 
23
23
  Computed by exhaustion, each a monograph with its own page (`/theorem/<key>`) and chained receipt. Grouped by family (largest first) — easy to spot; use the search box for any keyword:
24
24
 
@@ -271,17 +271,11 @@ Computed by exhaustion, each a monograph with its own page (`/theorem/<key>`) an
271
271
  - [lean_imagined_sextuple_collapses_triad_to_one_value](/theorem/lean_imagined_sextuple_collapses_triad_to_one_value) — lean imagined.lean: sextuple_collapses_triad_to_one_value — ([3, 6, 0].map (fun d =&gt; m9 (6 * d))).eraseDups.length = 1 — decided by the Lean kernel over its whole finite domain, axiom-free · `6c5bf198-bd89…`
272
272
  - [lean_imagined_sextuple_collapses_tetA_to_one_value](/theorem/lean_imagined_sextuple_collapses_tetA_to_one_value) — lean imagined.lean: sextuple_collapses_tetA_to_one_value — ([1, 4, 7].map (fun d =&gt; m9 (6 * d))).eraseDups.length = 1 — decided by the Lean kernel over its whole finite domain, axiom-free · `d29da6cf-62b5…`
273
273
  - [lean_imagined_sextuple_collapses_tetB_to_one_value](/theorem/lean_imagined_sextuple_collapses_tetB_to_one_value) — lean imagined.lean: sextuple_collapses_tetB_to_one_value — ([2, 5, 8].map (fun d =&gt; m9 (6 * d))).eraseDups.length = 1 — decided by the Lean kernel over its whole finite domain, axiom-free · `ee2a3939-17c8…`
274
- - [lean_energy_the_loop_returns_less_than_it_took](/theorem/lean_energy_the_loop_returns_less_than_it_took) — lean energy.lean: the_loop_returns_less_than_it_took — burnYield &lt; splitCost ∧ burnYield * 100 / splitCost = 23 — decided by the Lean kernel over its whole finite domain, axiom-free · `8229c511-d4bd…`
275
274
  - [lean_energy_a_chain_of_efficiencies_can_only_lose](/theorem/lean_energy_a_chain_of_efficiencies_can_only_lose) — lean energy.lean: a_chain_of_efficiencies_can_only_lose — (List.range 101).all (fun a =&gt; (List.range 101).all (fun b =&gt; a * b ≤ 100 * a && a * b ≤ 100 * b)) — decided by the Lean kernel over its whole finite domain, axiom-free · `34cbdadb-77a7…`
276
- - [lean_energy_as_a_purifier_the_loop_costs_a_thousandfold](/theorem/lean_energy_as_a_purifier_the_loop_costs_a_thousandfold) — lean energy.lean: as_a_purifier_the_loop_costs_a_thousandfold — splitCost / waterOut = 5777 ∧ splitCost / waterOut &gt; roPerLitre * 1000 — decided by the Lean kernel over its whole finite domain, axiom-free · `840c66b6-b891…`
277
- - [lean_energy_the_equation_balances_by_atom_count](/theorem/lean_energy_the_equation_balances_by_atom_count) — lean energy.lean: the_equation_balances_by_atom_count — (2 * 2 = 2 * 2) ∧ (2 * 1 = 1 * 2) ∧ 4 = 2 * 2 ∧ 2 = 1 * 2 — decided by the Lean kernel over its whole finite domain, axiom-free · `ecfd70b1-b35b…`
278
- - [lean_energy_the_equation_balances_by_mass](/theorem/lean_energy_the_equation_balances_by_mass) — lean energy.lean: the_equation_balances_by_mass — 2 * mgH2O = 2 * mgH2 + mgO2 ∧ 2 * mgH2O = 36030 — decided by the Lean kernel over its whole finite domain, axiom-free · `debf920f-a945…`
279
275
  - [lean_energy_the_gases_are_two_to_one_and_consume_each_other_exactly](/theorem/lean_energy_the_gases_are_two_to_one_and_consume_each_other_exactly) — lean energy.lean: the_gases_are_two_to_one_and_consume_each_other_exactly — 2 * 1 = 2 ∧ (2 * 100 / 3 = 66) ∧ (1 * 100 / 3 = 33) ∧ ¬ (1 * 1 = 2) — decided by the Lean kernel over its whole finite domain, axiom-free · `4411df61-18c7…`
280
- - [lean_energy_hydrogen_is_a_ninth_of_the_mass_and_oxygen_the_rest](/theorem/lean_energy_hydrogen_is_a_ninth_of_the_mass_and_oxygen_the_rest) — lean energy.lean: hydrogen_is_a_ninth_of_the_mass_and_oxygen_the_rest — mgO2 * 100 / (2 * mgH2) = 793 ∧ (2 * mgH2) * 10000 / (2 * mgH2O) = 1119 ∧ mgO2 * 10000 / (2 * mgH2O) = 8880 ∧ 1119 + 8880 = 9999 — decided by the Lean kernel over its whole finite domain, axiom-free · `585ebc79-3eac…`
281
276
  - [lean_energy_mass_is_conserved_at_every_scale_so_the_loop_cannot_make_water](/theorem/lean_energy_mass_is_conserved_at_every_scale_so_the_loop_cannot_make_water) — lean energy.lean: mass_is_conserved_at_every_scale_so_the_loop_cannot_make_water — (List.range' 1 100).all (fun n =&gt; 2 * n * mgH2O == 2 * n * mgH2 + n * mgO2) ∧ ¬ ((List.range' 1 100).all (fun n =&gt; n * mgH2O == n * mgH2 + n * mgO2)) — decided by the Lean kernel over its whole finite domain, axiom-free · `55429cd8-2b19…`
282
277
  - [lean_energy_one_litre_split_returns_one_litre_burnt](/theorem/lean_energy_one_litre_split_returns_one_litre_burnt) — lean energy.lean: one_litre_split_returns_one_litre_burnt — 111900 + 888100 = 1000000 ∧ 888100 * 100 / 111900 = 793 — decided by the Lean kernel over its whole finite domain, axiom-free · `e88c70d6-0123…`
283
278
  - [lean_energy_only_oxy_hydrogen_burns_without_admitting_nitrogen](/theorem/lean_energy_only_oxy_hydrogen_burns_without_admitting_nitrogen) — lean energy.lean: only_oxy_hydrogen_burns_without_admitting_nitrogen — 7808 * 100 / 2095 = 372 ∧ 0 * 372 = 0 ∧ ¬ (372 = 0) — decided by the Lean kernel over its whole finite domain, axiom-free · `69997ab3-1d7e…`
284
- - [lean_energy_the_ideal_round_trip_is_exactly_zero](/theorem/lean_energy_the_ideal_round_trip_is_exactly_zero) — lean energy.lean: the_ideal_round_trip_is_exactly_zero — 28583 - 28583 = 0 ∧ 28583 ≤ 28583 ∧ burnYield * 100 / splitCost = 23 — decided by the Lean kernel over its whole finite domain, axiom-free · `181481c2-3745…`
285
279
  - [lean_energy_the_two_to_one_is_forced_by_the_oxygen](/theorem/lean_energy_the_two_to_one_is_forced_by_the_oxygen) — lean energy.lean: the_two_to_one_is_forced_by_the_oxygen — balances 2 2 1 = true ∧ balances 1 1 1 = false ∧ (((List.range' 1 9).flatMap (fun a =&gt; (List.range' 1 9).flatMap (fun b =&gt; (List.range' 1 9).filter (fun c =&gt; balances a b c)))).length = 4) ∧ balances 4 4 2 = true ∧ balances 6 6 3 = true ∧ b… — decided by the Lean kernel over its whole finite domain, axiom-free · `75828bd9-1d34…`
286
280
  - [lean_imagined_units_is_closed_under_quadruple](/theorem/lean_imagined_units_is_closed_under_quadruple) — lean imagined.lean: units_is_closed_under_quadruple — [1, 2, 4, 5, 7, 8].all (fun d =&gt; [1, 2, 4, 5, 7, 8].contains (m9 (4 * d))) — decided by the Lean kernel over its whole finite domain, axiom-free · `e90978b5-a350…`
287
281
  - [lean_imagined_triad_is_closed_under_quadruple](/theorem/lean_imagined_triad_is_closed_under_quadruple) — lean imagined.lean: triad_is_closed_under_quadruple — [3, 6, 0].all (fun d =&gt; [3, 6, 0].contains (m9 (4 * d))) — decided by the Lean kernel over its whole finite domain, axiom-free · `6d2f140d-6eff…`
@@ -307,13 +301,6 @@ Computed by exhaustion, each a monograph with its own page (`/theorem/<key>`) an
307
301
  - [lean_imagined_square_carries_all_onto_squares](/theorem/lean_imagined_square_carries_all_onto_squares) — lean imagined.lean: square_carries_all_onto_squares — [0,1,2,3,4,5,6,7,8].all (fun d =&gt; [0, 1, 4, 7].contains (m9 (d * d))) ∧ ([0,1,2,3,4,5,6,7,8].map (fun d =&gt; m9 (d * d))).eraseDups.length = 4 — decided by the Lean kernel over its whole finite domain, axiom-free · `95bfa2f5-30af…`
308
302
  - [lean_imagined_cube_carries_all_onto_cubes](/theorem/lean_imagined_cube_carries_all_onto_cubes) — lean imagined.lean: cube_carries_all_onto_cubes — [0,1,2,3,4,5,6,7,8].all (fun d =&gt; [0, 1, 8].contains (m9 (d * d * d))) ∧ ([0,1,2,3,4,5,6,7,8].map (fun d =&gt; m9 (d * d * d))).eraseDups.length = 3 — decided by the Lean kernel over its whole finite domain, axiom-free · `614b5517-fe8e…`
309
303
  - [lean_imagined_sextuple_carries_cubes_onto_triad](/theorem/lean_imagined_sextuple_carries_cubes_onto_triad) — lean imagined.lean: sextuple_carries_cubes_onto_triad — [0, 1, 8].all (fun d =&gt; [3, 6, 0].contains (m9 (6 * d))) ∧ ([0, 1, 8].map (fun d =&gt; m9 (6 * d))).eraseDups.length = 3 — decided by the Lean kernel over its whole finite domain, axiom-free · `8d1758c9-e43d…`
310
- - [lean_energy_the_gases_are_eighteen_hundred_times_the_water_they_came_from](/theorem/lean_energy_the_gases_are_eighteen_hundred_times_the_water_they_came_from) — lean energy.lean: the_gases_are_eighteen_hundred_times_the_water_they_came_from — molH2 * mLperMol / 1000 = 11117 ∧ molO2 * mLperMol / 1000 = 5558 ∧ (molH2 * mLperMol / 1000 + molO2 * mLperMol / 1000) / 9 = 1852 — decided by the Lean kernel over its whole finite domain, axiom-free · `033b4a15-d8ee…`
311
- - [lean_energy_two_thirds_of_the_volume_carries_a_ninth_of_the_mass](/theorem/lean_energy_two_thirds_of_the_volume_carries_a_ninth_of_the_mass) — lean energy.lean: two_thirds_of_the_volume_carries_a_ninth_of_the_mass — molH2 * 100 / (molH2 + molO2) = 66 ∧ (2 * mgH2) * 100 / (2 * mgH2O) = 11 — decided by the Lean kernel over its whole finite domain, axiom-free · `f8780f77-c9ef…`
312
- - [lean_energy_uncompressed_hydrogen_is_three_thousandfold_worse_by_volume](/theorem/lean_energy_uncompressed_hydrogen_is_three_thousandfold_worse_by_volume) — lean energy.lean: uncompressed_hydrogen_is_three_thousandfold_worse_by_volume — whPerKgH2 * 100 / (molH2 * mLperMol / 1000) = 299 ∧ petrolWhL * 100 / 299 = 3244 — decided by the Lean kernel over its whole finite domain, axiom-free · `9c0e0943-6e5a…`
313
- - [lean_energy_even_at_seven_hundred_bar_it_is_sevenfold_worse_by_volume](/theorem/lean_energy_even_at_seven_hundred_bar_it_is_sevenfold_worse_by_volume) — lean energy.lean: even_at_seven_hundred_bar_it_is_sevenfold_worse_by_volume — 42 * whPerKgH2 / 1000 = 1398 ∧ petrolWhL / 1398 = 6 — decided by the Lean kernel over its whole finite domain, axiom-free · `a1413809-d6e9…`
314
- - [lean_energy_each_delivered_kilowatt_hour_costs_four_and_cycles_a_litre](/theorem/lean_energy_each_delivered_kilowatt_hour_costs_four_and_cycles_a_litre) — lean energy.lean: each_delivered_kilowatt_hour_costs_four_and_cycles_a_litre — splitCost * 100 / burnYield = 433 ∧ 9 * 1000 / (burnYield / 1000) = 750 — decided by the Lean kernel over its whole finite domain, axiom-free · `574b2b86-71c5…`
315
- - [lean_energy_three_quarters_of_the_input_leaves_as_heat](/theorem/lean_energy_three_quarters_of_the_input_leaves_as_heat) — lean energy.lean: three_quarters_of_the_input_leaves_as_heat — splitCost - burnYield = 40000 ∧ (splitCost - burnYield) * 100 / splitCost = 76 — decided by the Lean kernel over its whole finite domain, axiom-free · `35c25641-5b8d…`
316
- - [lean_energy_what_the_feedwater_leaves_behind_decides_the_maintenance](/theorem/lean_energy_what_the_feedwater_leaves_behind_decides_the_maintenance) — lean energy.lean: what_the_feedwater_leaves_behind_decides_the_maintenance — 100 * tdsSeawater / 1000 = 3500 ∧ 100 * tdsTapWater / 1000 = 5 ∧ tdsSeawater / tdsTapWater = 700 — decided by the Lean kernel over its whole finite domain, axiom-free · `2c3cf0b0-2ea7…`
317
304
  - [lean_mechanical_relation_digital_root](/theorem/lean_mechanical_relation_digital_root) — lean mechanical.lean: relation_digital_root — DR (78) == 6 && DR (12) == DR (21) && [1,2,4,5,7,8].contains (DR (7)) — decided by the Lean kernel over its whole finite domain, axiom-free · `d07323c6-683c…`
318
305
  - [lean_mechanical_relation_432_factors](/theorem/lean_mechanical_relation_432_factors) — lean mechanical.lean: relation_432_factors — 432 == 16 * 27 && 432 == 2 ^ 4 * 3 ^ 3 && DR (432) == 9 — decided by the Lean kernel over its whole finite domain, axiom-free · `34d3073f-7f81…`
319
306
  - [lean_mechanical_fib_trinity_horizon](/theorem/lean_mechanical_fib_trinity_horizon) — lean mechanical.lean: fib_trinity_horizon — DR (3 + 5 + 8) == 7 — decided by the Lean kernel over its whole finite domain, axiom-free · `458420c0-010d…`
@@ -452,9 +439,7 @@ Computed by exhaustion, each a monograph with its own page (`/theorem/<key>`) an
452
439
  - [lean_speed_the_verify_path_is_the_exponent](/theorem/lean_speed_the_verify_path_is_the_exponent) — lean speed.lean: the_verify_path_is_the_exponent — rounds 40 1024 = 10 ∧ rounds 40 16384 = 14 ∧ rounds 40 262144 = 18 ∧ rounds 40 1048576 = 20 — decided by the Lean kernel over its whole finite domain, axiom-free · `6fb8b2f6-095f…`
453
440
  - [lean_speed_the_gap_widens_with_every_doubling](/theorem/lean_speed_the_gap_widens_with_every_doubling) — lean speed.lean: the_gap_widens_with_every_doubling — 1024 / 10 &lt; 16384 / 14 ∧ 16384 / 14 &lt; 262144 / 18 ∧ 262144 / 18 &lt; 1048576 / 20 — decided by the Lean kernel over its whole finite domain, axiom-free · `81082913-b396…`
454
441
  - [lean_speed_no_constant_factor_accounts_for_the_gap](/theorem/lean_speed_no_constant_factor_accounts_for_the_gap) — lean speed.lean: no_constant_factor_accounts_for_the_gap — ¬ (10000 * 20 ≥ 1048576) ∧ 100 * 10 ≥ 1024 - 24 — decided by the Lean kernel over its whole finite domain, axiom-free · `ca47080d-22fb…`
455
- - [lean_speed_the_measured_ratio_at_a_million_leaves](/theorem/lean_speed_the_measured_ratio_at_a_million_leaves) — lean speed.lean: the_measured_ratio_at_a_million_leaves — recomputeUs / verifyUs = 567971 ∧ recomputeUs &gt; verifyUs * 500000 — decided by the Lean kernel over its whole finite domain, axiom-free · `167a92e0-5d27…`
456
442
  - [lean_speed_verification_grows_it_is_not_constant](/theorem/lean_speed_verification_grows_it_is_not_constant) — lean speed.lean: verification_grows_it_is_not_constant — rounds 40 1024 &lt; rounds 40 1048576 ∧ ((List.range' 1 10).all (fun k =&gt; rounds 40 (2 ^ k) == k)) — decided by the Lean kernel over its whole finite domain, axiom-free · `05461a91-454a…`
457
- - [lean_speed_the_verify_is_thirty_eight_thousand_nanoseconds_not_one](/theorem/lean_speed_the_verify_is_thirty_eight_thousand_nanoseconds_not_one) — lean speed.lean: the_verify_is_thirty_eight_thousand_nanoseconds_not_one — nsPerVerify = 38000 ∧ nsPerVerify &gt; 1 ∧ nsPerVerify &gt; 10000 — decided by the Lean kernel over its whole finite domain, axiom-free · `8eb1b99d-9b78…`
458
443
  - [lean_speed_the_advantage_is_the_count_not_the_operation](/theorem/lean_speed_the_advantage_is_the_count_not_the_operation) — lean speed.lean: the_advantage_is_the_count_not_the_operation — 1048576 - 20 = 1048556 ∧ 1048576 / 20 = 52428 — decided by the Lean kernel over its whole finite domain, axiom-free · `dc213511-7bcd…`
459
444
  - [lean_speed_the_break_even_is_the_ratio_of_verifications](/theorem/lean_speed_the_break_even_is_the_ratio_of_verifications) — lean speed.lean: the_break_even_is_the_ratio_of_verifications — 1048576 / 20 = 52428 ∧ 52428 * 20 ≤ 1048576 ∧ 1048576 &lt; 52429 * 20 + 20 — decided by the Lean kernel over its whole finite domain, axiom-free · `2ab2aa2c-03a3…`
460
445
  - [lean_mechanical_relation_units_sum_and_product](/theorem/lean_mechanical_relation_units_sum_and_product) — lean mechanical.lean: relation_units_sum_and_product — let m9 := fun n =&gt; ((n % 9) + 9) % 9; let U := [1,2,4,5,7,8]; M9 (U.foldl (fun a b =&gt; a + b) 0) == 0 && M9 (U.foldl (fun a b =&gt; a * b) 1) == 8 — decided by the Lean kernel over its whole finite domain, axiom-free · `55a81791-db87…`
@@ -517,7 +502,6 @@ Computed by exhaustion, each a monograph with its own page (`/theorem/<key>`) an
517
502
  - [lean_involution_the_constant_sum_is_rare](/theorem/lean_involution_the_constant_sum_is_rare) — lean involution.lean: the_constant_sum_is_rare — (all.filter constantSum).length = 90 — decided by the Lean kernel over its whole finite domain, axiom-free · `08ae4f57-abb2…`
518
503
  - [lean_involution_so_involutions_are_not_all_harmonic_in_that_sense](/theorem/lean_involution_so_involutions_are_not_all_harmonic_in_that_sense) — lean involution.lean: so_involutions_are_not_all_harmonic_in_that_sense — ¬ all.all constantSum — decided by the Lean kernel over its whole finite domain, axiom-free · `1b69f98b-1867…`
519
504
  - [lean_involution_the_coins_reflection_is_harmonic_and_is_one_of_the_ninety](/theorem/lean_involution_the_coins_reflection_is_harmonic_and_is_one_of_the_ninety) — lean involution.lean: the_coins_reflection_is_harmonic_and_is_one_of_the_ninety — constantSum coinLike = true ∧ fixedPoints coinLike = 1 ∧ (swaps coinLike).all (fun p =&gt; p.1 + p.2 == 9) — decided by the Lean kernel over its whole finite domain, axiom-free · `813ea66f-9b19…`
520
- - [lean_light_the_si_fixes_exactly_seven_constants](/theorem/lean_light_the_si_fixes_exactly_seven_constants) — lean light.lean: the_si_fixes_exactly_seven_constants — defining.length = 7 — decided by the Lean kernel over its whole finite domain, axiom-free · `34b3da62-a7f5…`
521
505
  - [lean_light_the_chain_scales](/theorem/lean_light_the_chain_scales) — lean light.lean: the_chain_scales — ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].all (fun s =&gt; travel s == c * s)) ∧ ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].all (fun s =&gt; periods s == dNuCs * s)) — decided by the Lean kernel over its whole finite domain, axiom-free · `43fea27e-ab9a…`
522
506
  - [lean_light_the_roots_of_the_seven](/theorem/lean_light_the_roots_of_the_seven) — lean light.lean: the_roots_of_the_seven — defining.map root = [1, 9, 6, 9, 4, 1, 8] — decided by the Lean kernel over its whole finite domain, axiom-free · `6e5b42a1-9c30…`
523
507
  - [lean_light_three_on_the_triad_and_four_on_the_units](/theorem/lean_light_three_on_the_triad_and_four_on_the_units) — lean light.lean: three_on_the_triad_and_four_on_the_units — (defining.filter (fun n =&gt; [3, 6, 9].contains (root n))).length = 3 ∧ (defining.filter (fun n =&gt; [1, 2, 4, 5, 7, 8].contains (root n))).length = 4 — decided by the Lean kernel over its whole finite domain, axiom-free · `d09fac98-79f7…`
@@ -533,7 +517,6 @@ Computed by exhaustion, each a monograph with its own page (`/theorem/<key>`) an
533
517
  - [lean_reach_exhaustion_never_reaches_its_own_bound](/theorem/lean_reach_exhaustion_never_reaches_its_own_bound) — lean reach.lean: exhaustion_never_reaches_its_own_bound — bounds.all (fun n =&gt; (List.range n).length == n && ¬ (List.range n).contains n) — decided by the Lean kernel over its whole finite domain, axiom-free · `5ed549ae-bc8e…`
534
518
  - [lean_reach_the_successor_of_every_bound_lies_outside](/theorem/lean_reach_the_successor_of_every_bound_lies_outside) — lean reach.lean: the_successor_of_every_bound_lies_outside — bounds.all (fun n =&gt; ¬ (List.range n).contains (n + 1)) — decided by the Lean kernel over its whole finite domain, axiom-free · `1741c0fd-b09c…`
535
519
  - [lean_reach_doubling_the_domain_leaves_the_same_hole](/theorem/lean_reach_doubling_the_domain_leaves_the_same_hole) — lean reach.lean: doubling_the_domain_leaves_the_same_hole — bounds.all (fun n =&gt; ¬ (List.range (2 * n)).contains (2 * n)) — decided by the Lean kernel over its whole finite domain, axiom-free · `ec21ebe8-a25e…`
536
- - [lean_reach_even_the_largest_domain_here_has_an_outside](/theorem/lean_reach_even_the_largest_domain_here_has_an_outside) — lean reach.lean: even_the_largest_domain_here_has_an_outside — largestDomainHere + 1 &gt; largestDomainHere ∧ largestDomainHere % 2 = 0 ∧ (largestDomainHere + 1) % 2 = 1 — decided by the Lean kernel over its whole finite domain, axiom-free · `9f25da95-de94…`
537
520
  - [lean_phenomena_the_table_is_closed_and_that_is_all_this_file_decides](/theorem/lean_phenomena_the_table_is_closed_and_that_is_all_this_file_decides) — lean phenomena.lean: the_table_is_closed_and_that_is_all_this_file_decides — entries.all (fun e =&gt; statusOf e == 0 || statusOf e == 1) ∧ entries.length = 9 ∧ (entries.filter (fun e =&gt; statusOf e == 0)).length = 7 — decided by the Lean kernel over its whole finite domain, axiom-free · `d3aba4ab-326f…`
538
521
  - [lean_coin_the_fall_and_the_reflection_share_one_exceptional_digit](/theorem/lean_coin_the_fall_and_the_reflection_share_one_exceptional_digit) — lean coin.lean: the_fall_and_the_reflection_share_one_exceptional_digit — (digits.filter (fun d =&gt; fall d != d)) = (digits.filter (fun d =&gt; refl d &gt; 9)) — decided by the Lean kernel over its whole finite domain, axiom-free · `ad96432a-9394…`
539
522
  - [lean_light_travel_at_one_returns_the_defined_constant](/theorem/lean_light_travel_at_one_returns_the_defined_constant) — lean light.lean: travel_at_one_returns_the_defined_constant — travel 1 = c — decided by the Lean kernel over its whole finite domain, axiom-free · `9dc58fa5-fb1f…`
@@ -542,8 +525,6 @@ Computed by exhaustion, each a monograph with its own page (`/theorem/<key>`) an
542
525
  - [lean_priorart_novelty_is_claimed_of_no_source](/theorem/lean_priorart_novelty_is_claimed_of_no_source) — lean priorart.lean: novelty_is_claimed_of_no_source — (sources.filter novelty).length = 0 — decided by the Lean kernel over its whole finite domain, axiom-free · `f7830678-15e8…`
543
526
  - [lean_imagined_triad_is_closed_under_double](/theorem/lean_imagined_triad_is_closed_under_double) — lean imagined.lean: triad_is_closed_under_double — [3, 6, 0].all (fun d =&gt; [3, 6, 0].contains (m9 (2 * d))) — decided by the Lean kernel over its whole finite domain, axiom-free · `e97a7f4a-5ea2…`
544
527
  - [lean_imagined_double_is_involutive_on_triad](/theorem/lean_imagined_double_is_involutive_on_triad) — lean imagined.lean: double_is_involutive_on_triad — [3, 6, 0].all (fun d =&gt; (fun x =&gt; m9 (2 * x)) (m9 (2 * d)) == d) — decided by the Lean kernel over its whole finite domain, axiom-free · `2745f785-9f44…`
545
- - [lean_speed_hexbits_are_shorter_than_hex](/theorem/lean_speed_hexbits_are_shorter_than_hex) — lean speed.lean: hexbits_are_shorter_than_hex — hexbitChars &lt; hexChars ∧ hexChars - hexbitChars = 10 ∧ hexbitChars * 100 / hexChars = 68 — decided by the Lean kernel over its whole finite domain, axiom-free · `d3b171cf-2487…`
546
- - [lean_speed_hexbits_are_slower_than_hex](/theorem/lean_speed_hexbits_are_slower_than_hex) — lean speed.lean: hexbits_are_slower_than_hex — hexbitMs &gt; hexMs ∧ hexbitMs * 10 / hexMs = 18 — decided by the Lean kernel over its whole finite domain, axiom-free · `cf4672e4-0be3…`
547
528
  - [lean_quantum_the_ghz_x_support_is_exactly_the_even_parity_strings](/theorem/lean_quantum_the_ghz_x_support_is_exactly_the_even_parity_strings) — lean quantum.lean: the_ghz_x_support_is_exactly_the_even_parity_strings — (List.range 8).filter (fun n =&gt; par3 n == 0) = ghzXSupport — decided by the Lean kernel over its whole finite domain, axiom-free · `7fb1069f-54b2…`
548
529
  - [lean_quantum_it_is_half_of_the_eight](/theorem/lean_quantum_it_is_half_of_the_eight) — lean quantum.lean: it_is_half_of_the_eight — ghzXSupport.length = 4 ∧ (List.range 8).length = 8 — decided by the Lean kernel over its whole finite domain, axiom-free · `8c2ae28f-cbb1…`
549
530
  - [lean_quantum_a_classical_mixture_reaches_the_parity_ghz_never_does](/theorem/lean_quantum_a_classical_mixture_reaches_the_parity_ghz_never_does) — lean quantum.lean: a_classical_mixture_reaches_the_parity_ghz_never_does — ((List.range 8).filter (fun n =&gt; par3 n == 1)).length = 4 ∧ ((List.range 8).filter (fun n =&gt; par3 n == 1)).all (fun n =&gt; ¬ ghzXSupport.contains n) — decided by the Lean kernel over its whole finite domain, axiom-free · `1e0393b3-351a…`
@@ -643,18 +624,37 @@ Computed by exhaustion, each a monograph with its own page (`/theorem/<key>`) an
643
624
  - [lean_split_paying_and_refunding_coins_on_the_last_pair_round_trips](/theorem/lean_split_paying_and_refunding_coins_on_the_last_pair_round_trips) — lean split.lean: paying_and_refunding_coins_on_the_last_pair_round_trips — ((List.range 27).all (fun k =&gt; 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 · `d09b81fa-777d…`
644
625
  - [lean_split_a_seal_divides_into_payments_and_multiplies_back](/theorem/lean_split_a_seal_divides_into_payments_and_multiplies_back) — lean split.lean: a_seal_divides_into_payments_and_multiplies_back — ([1, 2, 4, 8, 16, 32, 64, 128].all (fun c =&gt; (sealBits / c) * c == sealBits && sealBits / (sealBits / c) == c)) ∧ sealBits / coins = 2 ^ 6 — decided by the Lean kernel over its whole finite domain, axiom-free · `1984d72b-4263…`
645
626
  - [lean_split_the_orbit_turns_once_per_budget](/theorem/lean_split_the_orbit_turns_once_per_budget) — lean split.lean: the_orbit_turns_once_per_budget — ((List.range 60).all (fun n =&gt; 2 ^ (n + 6) % 9 == 2 ^ n % 9)) ∧ 2 ^ 6 = sealBits / coins — decided by the Lean kernel over its whole finite domain, axiom-free · `35d5dc48-cbc0…`
627
+ - [lean_energy_any_yield_below_its_cost_reads_under_the_whole](/theorem/lean_energy_any_yield_below_its_cost_reads_under_the_whole) — lean energy.lean: any_yield_below_its_cost_reads_under_the_whole — (List.range' 1 60).all (fun c =&gt; (List.range c).all (fun y =&gt; pct y c &lt; 100)) ∧ burnYield &lt; splitCost ∧ pct burnYield splitCost = 23 — decided by the Lean kernel over its whole finite domain, axiom-free · `64823215-1e97…`
628
+ - [lean_energy_the_cost_per_litre_multiplies_back_to_the_cost](/theorem/lean_energy_the_cost_per_litre_multiplies_back_to_the_cost) — lean energy.lean: the_cost_per_litre_multiplies_back_to_the_cost — (List.range' 1 20).all (fun l =&gt; (splitCost / l) * l ≤ splitCost && splitCost &lt; (splitCost / l + 1) * l) ∧ splitCost / waterOut = 5777 ∧ splitCost / waterOut &gt; roPerLitre * 1000 — decided by the Lean kernel over its whole finite domain, axiom-free · `2fafc1e2-f58f…`
629
+ - [lean_energy_the_mass_balance_is_the_atom_balance](/theorem/lean_energy_the_mass_balance_is_the_atom_balance) — lean energy.lean: the_mass_balance_is_the_atom_balance — mgH2 = mass 2 0 ∧ mgO2 = mass 0 2 ∧ mgH2O = mass 2 1 ∧ (List.range' 1 9).all (fun a =&gt; (List.range' 1 9).all (fun b =&gt; (List.range' 1 9).all (fun c =&gt; (a * mass 2 1 == b * mass 2 0 + c * mass 0 2) == balances a b c))) ∧ 2 * mgH2O = 2 * mgH2… — decided by the Lean kernel over its whole finite domain, axiom-free · `2854e1d5-ab5d…`
630
+ - [lean_energy_the_atom_table_decides_the_balance](/theorem/lean_energy_the_atom_table_decides_the_balance) — lean energy.lean: the_atom_table_decides_the_balance — (List.range' 1 9).all (fun a =&gt; (List.range' 1 9).all (fun b =&gt; (List.range' 1 9).all (fun c =&gt; (a * atomsH2O.1 == b * atomsH2.1 + c * atomsO2.1 && a * atomsH2O.2 == b * atomsH2.2 + c * atomsO2.2) == balances a b c))) — decided by the Lean kernel over its whole finite domain, axiom-free · `98e0c98d-7b0c…`
631
+ - [lean_energy_a_part_and_its_rest_read_back_the_whole](/theorem/lean_energy_a_part_and_its_rest_read_back_the_whole) — lean energy.lean: a_part_and_its_rest_read_back_the_whole — (List.range' 1 40).all (fun w =&gt; (List.range (w + 1)).all (fun a =&gt; per10k a w + per10k (w - a) w ≤ 10000 && 10000 ≤ per10k a w + per10k (w - a) w + 1)) ∧ mgO2 * 100 / (2 * mgH2) = 793 ∧ per10k (2 * mgH2) (2 * mgH2O) = 1119 ∧ per10k mgO2 (2… — decided by the Lean kernel over its whole finite domain, axiom-free · `d4addfa7-6e96…`
632
+ - [lean_energy_splitting_then_burning_is_the_identity_at_the_ideal](/theorem/lean_energy_splitting_then_burning_is_the_identity_at_the_ideal) — lean energy.lean: splitting_then_burning_is_the_identity_at_the_ideal — (List.range 1000).all (fun e =&gt; burnE (splitE e) == e) ∧ pct burnYield splitCost = 23 — decided by the Lean kernel over its whole finite domain, axiom-free · `f354845f-b6af…`
633
+ - [lean_energy_the_gas_volume_reads_back_its_moles](/theorem/lean_energy_the_gas_volume_reads_back_its_moles) — lean energy.lean: the_gas_volume_reads_back_its_moles — (List.range 1000).all (fun m =&gt; molesOf (litresOf m) ≤ m && m ≤ molesOf (litresOf m) + 1) ∧ molH2 = 2 * molO2 ∧ litresOf molH2 = 11117 ∧ litresOf molO2 = 5558 ∧ (litresOf molH2 + litresOf molO2) / 9 = 1852 — decided by the Lean kernel over its whole finite domain, axiom-free · `464b601e-4839…`
634
+ - [lean_energy_two_parts_in_three_is_two_thirds_at_every_scale](/theorem/lean_energy_two_parts_in_three_is_two_thirds_at_every_scale) — lean energy.lean: two_parts_in_three_is_two_thirds_at_every_scale — (List.range' 1 500).all (fun m =&gt; pct (2 * m) (3 * m) == 66) ∧ pct molH2 (molH2 + molO2) = 66 ∧ pct (2 * mgH2) (2 * mgH2O) = 11 — decided by the Lean kernel over its whole finite domain, axiom-free · `6913b23d-5d6d…`
635
+ - [lean_energy_the_energy_per_litre_multiplies_back_to_the_energy](/theorem/lean_energy_the_energy_per_litre_multiplies_back_to_the_energy) — lean energy.lean: the_energy_per_litre_multiplies_back_to_the_energy — (List.range' 1 30).all (fun l =&gt; (whPerKgH2 * 100 / l) * l ≤ whPerKgH2 * 100 && whPerKgH2 * 100 &lt; (whPerKgH2 * 100 / l + 1) * l) ∧ whPerKgH2 * 100 / litresOf molH2 = 299 ∧ petrolWhL * 100 / 299 = 3244 — decided by the Lean kernel over its whole finite domain, axiom-free · `6ca259eb-a048…`
636
+ - [lean_energy_compression_scales_the_energy_per_litre_linearly](/theorem/lean_energy_compression_scales_the_energy_per_litre_linearly) — lean energy.lean: compression_scales_the_energy_per_litre_linearly — (List.range 100).all (fun k =&gt; 2 * whPerLitreAt k ≤ whPerLitreAt (2 * k) && whPerLitreAt (2 * k) ≤ 2 * whPerLitreAt k + 1) ∧ whPerLitreAt 42 = 1398 ∧ petrolWhL / whPerLitreAt 42 = 6 — decided by the Lean kernel over its whole finite domain, axiom-free · `62f26437-7387…`
637
+ - [lean_energy_a_ratio_and_its_reciprocal_multiply_back_to_the_whole](/theorem/lean_energy_a_ratio_and_its_reciprocal_multiply_back_to_the_whole) — lean energy.lean: a_ratio_and_its_reciprocal_multiply_back_to_the_whole — (List.range' 1 40).all (fun b =&gt; (List.range' 1 b).all (fun a =&gt; pct a b * pct b a ≤ 10000 && 10000 &lt; (pct a b + 1) * (pct b a + 1))) ∧ pct splitCost burnYield = 433 ∧ pct burnYield splitCost = 23 ∧ 9 * 1000 / (burnYield / 1000) = 750 — decided by the Lean kernel over its whole finite domain, axiom-free · `07ef3913-ea46…`
638
+ - [lean_energy_the_loss_and_the_yield_read_back_the_input](/theorem/lean_energy_the_loss_and_the_yield_read_back_the_input) — lean energy.lean: the_loss_and_the_yield_read_back_the_input — (List.range' 1 60).all (fun c =&gt; (List.range (c + 1)).all (fun y =&gt; (c - y) + y == c && 99 ≤ pct (c - y) c + pct y c && pct (c - y) c + pct y c ≤ 100)) ∧ splitCost - burnYield = 40000 ∧ pct (splitCost - burnYield) splitCost = 76 ∧ pct burnY… — decided by the Lean kernel over its whole finite domain, axiom-free · `945f6f02-5f28…`
639
+ - [lean_energy_the_residue_ratio_is_the_same_at_every_volume](/theorem/lean_energy_the_residue_ratio_is_the_same_at_every_volume) — lean energy.lean: the_residue_ratio_is_the_same_at_every_volume — (List.range' 1 200).all (fun l =&gt; residueMg l tdsSeawater == 700 * residueMg l tdsTapWater) ∧ residueMg 100 tdsSeawater / 1000 = 3500 ∧ residueMg 100 tdsTapWater / 1000 = 5 — decided by the Lean kernel over its whole finite domain, axiom-free · `b0b19d5b-1924…`
640
+ - [lean_light_the_si_fixes_seven_distinct_nonzero_constants](/theorem/lean_light_the_si_fixes_seven_distinct_nonzero_constants) — lean light.lean: the_si_fixes_seven_distinct_nonzero_constants — defining.length = 7 ∧ defining.eraseDups = defining ∧ defining.all (fun x =&gt; x &gt; 0) — decided by the Lean kernel over its whole finite domain, axiom-free · `b8191727-00d7…`
641
+ - [lean_reach_the_successor_leaves_every_domain_and_the_predecessor_returns](/theorem/lean_reach_the_successor_leaves_every_domain_and_the_predecessor_returns) — lean reach.lean: the_successor_leaves_every_domain_and_the_predecessor_returns — (bounds ++ [largestDomainHere]).all (fun n =&gt; n + 1 &gt; n && (n + 1) - 1 == n && (n + 1) % 2 != n % 2) — decided by the Lean kernel over its whole finite domain, axiom-free · `e11c16ca-5d37…`
642
+ - [lean_speed_the_measured_ratio_exceeds_the_counted_gap](/theorem/lean_speed_the_measured_ratio_exceeds_the_counted_gap) — lean speed.lean: the_measured_ratio_exceeds_the_counted_gap — (List.range' 1 20).all (fun k =&gt; 2 ^ k / rounds 40 (2 ^ k) ≤ recomputeUs / verifyUs) ∧ (recomputeUs / verifyUs) * verifyUs ≤ recomputeUs ∧ recomputeUs &lt; (recomputeUs / verifyUs + 1) * verifyUs ∧ recomputeUs / verifyUs = 567971 — decided by the Lean kernel over its whole finite domain, axiom-free · `f8640798-50bd…`
643
+ - [lean_speed_the_verify_in_nanoseconds_reads_back_its_microseconds](/theorem/lean_speed_the_verify_in_nanoseconds_reads_back_its_microseconds) — lean speed.lean: the_verify_in_nanoseconds_reads_back_its_microseconds — (List.range 1000).all (fun u =&gt; u * 1000 / 1000 == u) ∧ nsPerVerify = verifyUs * 1000 ∧ nsPerVerify / 1000 = verifyUs ∧ nsPerVerify &gt; 10000 — decided by the Lean kernel over its whole finite domain, axiom-free · `e8a082ef-9515…`
644
+ - [lean_speed_the_width_is_the_ceiling_of_128_bits_over_the_symbol](/theorem/lean_speed_the_width_is_the_ceiling_of_128_bits_over_the_symbol) — lean speed.lean: the_width_is_the_ceiling_of_128_bits_over_the_symbol — (List.range' 1 8).all (fun b =&gt; charsFor b * b ≥ 128 && (charsFor b - 1) * b &lt; 128) ∧ charsFor 4 = hexChars ∧ charsFor 6 = hexbitChars ∧ hexbitChars &lt; hexChars ∧ hexbitChars * 100 / hexChars = 68 — decided by the Lean kernel over its whole finite domain, axiom-free · `5811891a-d052…`
645
+ - [lean_speed_hexbits_are_slower_and_the_ratio_multiplies_back](/theorem/lean_speed_hexbits_are_slower_and_the_ratio_multiplies_back) — lean speed.lean: hexbits_are_slower_and_the_ratio_multiplies_back — (List.range' 1 20).all (fun b =&gt; (List.range 400).all (fun a =&gt; (a / b) * b ≤ a && a &lt; (a / b + 1) * b)) ∧ hexbitMs &gt; hexMs ∧ hexbitMs * 10 / hexMs = 18 — decided by the Lean kernel over its whole finite domain, axiom-free · `91a92ea5-bedd…`
646
646
 
647
647
  ### other — one-of-a-kind (0)
648
648
 
649
649
 
650
650
 
651
- ## Revoked — 1495 entries that no longer stand
651
+ ## Revoked — 1514 entries that no longer stand
652
652
 
653
653
  The ledger is append-only: an entry that stops holding is marked in place, never deleted — deleting would break the receipt chain, and rewriting a receipt is tamper. These keep their receipts and stay in the record, but they are **not citable** and have no `/theorem/` page. Grouped by the reason they went:
654
654
 
655
655
  - **1011** — dirty: not backed by a Lean proof
656
656
  - **443** — revoked in place: its test asserted a lexical drain (computes(boast)
657
- - **16** — orphaned: the theorem this key was sealed from is no longer in src/proof
657
+ - **35** — orphaned: the theorem this key was sealed from is no longer in src/proof
658
658
  - **12** — revoked in place: circular by construction AND dependent on the removed lexical gate
659
659
  - **10** — revoked in place: circular by construction — the test defines the answer it checks, proving a declaration rather than a fact
660
660
  - **1** — revoked in place: its test asserts that a list of proof-boasts written across many scripts and languages ALL drain the gate — a lexical drain assertion, and the word-list gate was removed by order, so there is no lexicon to drain and the assertion tests nothing
@@ -708,7 +708,7 @@ Each was withdrawn for want of a Lean proof and has since been given one, at a n
708
708
 
709
709
  …and 394 more.
710
710
 
711
- <details><summary>List all 1495 withdrawn keys — nothing proves these</summary>
711
+ <details><summary>List all 1514 withdrawn keys — nothing proves these</summary>
712
712
 
713
713
  - ~~`qr_u7`~~ — 7 is a quadratic residue mod 9 · `2a422f9b-761a…`
714
714
  - ~~`powinv_k5`~~ — u↦u^5 is an involution on the units mod 9 · `8e327990-c88f…`
@@ -2188,7 +2188,22 @@ Each was withdrawn for want of a Lean proof and has since been given one, at a n
2188
2188
  - ~~`pure_ts_pbkdf2_hmac_sha256_truncates_a_partial_final_block`~~ — pure-TS PBKDF2-HMAC-SHA256 truncates a partial final block — a twenty-byte derived key is not a whole number of hashes; 0/7 · `cf6f888e-151d…`
2189
2189
  - ~~`the_pure_ts_aead_rejects_a_flipped_additional_data_bit`~~ — the pure-TS ChaCha20-Poly1305 AEAD rejects a flipped additional-data bit — the aad is authenticated, not merely carried; 0/7 · `57305d0f-ed04…`
2190
2190
  - ~~`the_pure_ts_aead_tag_depends_on_the_additional_data`~~ — the pure-TS ChaCha20-Poly1305 tag depends on the additional data — the same plaintext under different aad tags differently; 0/7 · `5daa79d5-5154…`
2191
+ - ~~`lean_energy_the_loop_returns_less_than_it_took`~~ — lean energy.lean: the_loop_returns_less_than_it_took — burnYield &lt; splitCost ∧ burnYield * 100 / splitCost = 23 — decided by the Lean kernel over its whole finite domain, axiom-free · `8229c511-d4bd…`
2192
+ - ~~`lean_energy_as_a_purifier_the_loop_costs_a_thousandfold`~~ — lean energy.lean: as_a_purifier_the_loop_costs_a_thousandfold — splitCost / waterOut = 5777 ∧ splitCost / waterOut &gt; roPerLitre * 1000 — decided by the Lean kernel over its whole finite domain, axiom-free · `840c66b6-b891…`
2193
+ - ~~`lean_energy_the_equation_balances_by_atom_count`~~ — lean energy.lean: the_equation_balances_by_atom_count — (2 * 2 = 2 * 2) ∧ (2 * 1 = 1 * 2) ∧ 4 = 2 * 2 ∧ 2 = 1 * 2 — decided by the Lean kernel over its whole finite domain, axiom-free · `ecfd70b1-b35b…`
2194
+ - ~~`lean_energy_the_equation_balances_by_mass`~~ — lean energy.lean: the_equation_balances_by_mass — 2 * mgH2O = 2 * mgH2 + mgO2 ∧ 2 * mgH2O = 36030 — decided by the Lean kernel over its whole finite domain, axiom-free · `debf920f-a945…`
2195
+ - ~~`lean_energy_hydrogen_is_a_ninth_of_the_mass_and_oxygen_the_rest`~~ — lean energy.lean: hydrogen_is_a_ninth_of_the_mass_and_oxygen_the_rest — mgO2 * 100 / (2 * mgH2) = 793 ∧ (2 * mgH2) * 10000 / (2 * mgH2O) = 1119 ∧ mgO2 * 10000 / (2 * mgH2O) = 8880 ∧ 1119 + 8880 = 9999 — decided by the Lean kernel over its whole finite domain, axiom-free · `585ebc79-3eac…`
2196
+ - ~~`lean_energy_the_ideal_round_trip_is_exactly_zero`~~ — lean energy.lean: the_ideal_round_trip_is_exactly_zero — 28583 - 28583 = 0 ∧ 28583 ≤ 28583 ∧ burnYield * 100 / splitCost = 23 — decided by the Lean kernel over its whole finite domain, axiom-free · `181481c2-3745…`
2197
+ - ~~`lean_energy_the_gases_are_eighteen_hundred_times_the_water_they_came_from`~~ — lean energy.lean: the_gases_are_eighteen_hundred_times_the_water_they_came_from — molH2 * mLperMol / 1000 = 11117 ∧ molO2 * mLperMol / 1000 = 5558 ∧ (molH2 * mLperMol / 1000 + molO2 * mLperMol / 1000) / 9 = 1852 — decided by the Lean kernel over its whole finite domain, axiom-free · `033b4a15-d8ee…`
2198
+ - ~~`lean_energy_two_thirds_of_the_volume_carries_a_ninth_of_the_mass`~~ — lean energy.lean: two_thirds_of_the_volume_carries_a_ninth_of_the_mass — molH2 * 100 / (molH2 + molO2) = 66 ∧ (2 * mgH2) * 100 / (2 * mgH2O) = 11 — decided by the Lean kernel over its whole finite domain, axiom-free · `f8780f77-c9ef…`
2199
+ - ~~`lean_energy_uncompressed_hydrogen_is_three_thousandfold_worse_by_volume`~~ — lean energy.lean: uncompressed_hydrogen_is_three_thousandfold_worse_by_volume — whPerKgH2 * 100 / (molH2 * mLperMol / 1000) = 299 ∧ petrolWhL * 100 / 299 = 3244 — decided by the Lean kernel over its whole finite domain, axiom-free · `9c0e0943-6e5a…`
2200
+ - ~~`lean_energy_even_at_seven_hundred_bar_it_is_sevenfold_worse_by_volume`~~ — lean energy.lean: even_at_seven_hundred_bar_it_is_sevenfold_worse_by_volume — 42 * whPerKgH2 / 1000 = 1398 ∧ petrolWhL / 1398 = 6 — decided by the Lean kernel over its whole finite domain, axiom-free · `a1413809-d6e9…`
2201
+ - ~~`lean_energy_each_delivered_kilowatt_hour_costs_four_and_cycles_a_litre`~~ — lean energy.lean: each_delivered_kilowatt_hour_costs_four_and_cycles_a_litre — splitCost * 100 / burnYield = 433 ∧ 9 * 1000 / (burnYield / 1000) = 750 — decided by the Lean kernel over its whole finite domain, axiom-free · `574b2b86-71c5…`
2202
+ - ~~`lean_energy_three_quarters_of_the_input_leaves_as_heat`~~ — lean energy.lean: three_quarters_of_the_input_leaves_as_heat — splitCost - burnYield = 40000 ∧ (splitCost - burnYield) * 100 / splitCost = 76 — decided by the Lean kernel over its whole finite domain, axiom-free · `35c25641-5b8d…`
2203
+ - ~~`lean_energy_what_the_feedwater_leaves_behind_decides_the_maintenance`~~ — lean energy.lean: what_the_feedwater_leaves_behind_decides_the_maintenance — 100 * tdsSeawater / 1000 = 3500 ∧ 100 * tdsTapWater / 1000 = 5 ∧ tdsSeawater / tdsTapWater = 700 — decided by the Lean kernel over its whole finite domain, axiom-free · `2c3cf0b0-2ea7…`
2191
2204
  - ~~`lean_mechanical_geom_exterior_360`~~ — lean mechanical.lean: geom_exterior_360 — [3, 5, 8].all (fun n =&gt; n * (360 / n) == 360) — decided by the Lean kernel over its whole finite domain, axiom-free · `b484eaf3-88c5…`
2205
+ - ~~`lean_speed_the_measured_ratio_at_a_million_leaves`~~ — lean speed.lean: the_measured_ratio_at_a_million_leaves — recomputeUs / verifyUs = 567971 ∧ recomputeUs &gt; verifyUs * 500000 — decided by the Lean kernel over its whole finite domain, axiom-free · `167a92e0-5d27…`
2206
+ - ~~`lean_speed_the_verify_is_thirty_eight_thousand_nanoseconds_not_one`~~ — lean speed.lean: the_verify_is_thirty_eight_thousand_nanoseconds_not_one — nsPerVerify = 38000 ∧ nsPerVerify &gt; 1 ∧ nsPerVerify &gt; 10000 — decided by the Lean kernel over its whole finite domain, axiom-free · `8eb1b99d-9b78…`
2192
2207
  - ~~`lean_priorart_novelty_is_claimed_exactly_where_no_prior_art_is_known`~~ — lean priorart.lean: novelty_is_claimed_exactly_where_no_prior_art_is_known — sources.all (fun s =&gt; (kindOf s == 1) == novelty s) — decided by the Lean kernel over its whole finite domain, axiom-free · `29363caf-0baf…`
2193
2208
  - ~~`lean_priorart_no_source_both_restates_and_claims`~~ — lean priorart.lean: no_source_both_restates_and_claims — (sources.filter (fun s =&gt; kindOf s == 0 && novelty s)).length = 0 — decided by the Lean kernel over its whole finite domain, axiom-free · `5f8c3038-bf92…`
2194
2209
  - ~~`lean_priorart_the_two_sets_cover_every_source`~~ — lean priorart.lean: the_two_sets_cover_every_source — (sources.filter (fun s =&gt; kindOf s == 0)).length + (sources.filter (fun s =&gt; kindOf s == 1)).length = sources.length — decided by the Lean kernel over its whole finite domain, axiom-free · `16cd82ee-e3ff…`
@@ -2199,13 +2214,17 @@ Each was withdrawn for want of a Lean proof and has since been given one, at a n
2199
2214
  - ~~`lean_split_the_seal_affords_sixty_four_payments_of_two`~~ — 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 · `983dd276-c1a1…`
2200
2215
  - ~~`lean_split_the_budget_and_the_period_are_one_turn`~~ — 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 · `c595d67b-fa66…`
2201
2216
  - ~~`lean_coin_this_file_makes_no_physical_claim`~~ — lean coin.lean: this_file_makes_no_physical_claim — physicalClaims = 0 ∧ digits.length = 10 — decided by the Lean kernel over its whole finite domain, axiom-free · `be643cd8-b421…`
2217
+ - ~~`lean_light_the_si_fixes_exactly_seven_constants`~~ — lean light.lean: the_si_fixes_exactly_seven_constants — defining.length = 7 — decided by the Lean kernel over its whole finite domain, axiom-free · `34b3da62-a7f5…`
2202
2218
  - ~~`lean_phenomena_this_deposit_explains_predicts_and_constrains_nothing`~~ — lean phenomena.lean: this_deposit_explains_predicts_and_constrains_nothing — explanations = 0 ∧ predictions = 0 ∧ theoriesConstrained = 0 — decided by the Lean kernel over its whole finite domain, axiom-free · `f3f2dd32-107d…`
2203
2219
  - ~~`lean_phenomena_arithmetic_on_a_definition_returns_the_definition`~~ — lean phenomena.lean: arithmetic_on_a_definition_returns_the_definition — (299792458 % 9 = 1) ∧ explanations = 0 — decided by the Lean kernel over its whole finite domain, axiom-free · `2f338a89-2ef5…`
2220
+ - ~~`lean_reach_even_the_largest_domain_here_has_an_outside`~~ — lean reach.lean: even_the_largest_domain_here_has_an_outside — largestDomainHere + 1 &gt; largestDomainHere ∧ largestDomainHere % 2 = 0 ∧ (largestDomainHere + 1) % 2 = 1 — decided by the Lean kernel over its whole finite domain, axiom-free · `9f25da95-de94…`
2204
2221
  - ~~`lean_reach_this_file_settles_none_of_the_seven`~~ — lean reach.lean: this_file_settles_none_of_the_seven — (bounds.filter (fun n =&gt; (List.range n).contains n)).length = 0 ∧ bounds.length = 50 — decided by the Lean kernel over its whole finite domain, axiom-free · `2c8272de-17dd…`
2205
2222
  - ~~`lean_coin_the_digits_are_ten`~~ — lean coin.lean: the_digits_are_ten — digits.length = 10 — decided by the Lean kernel over its whole finite domain, axiom-free · `bdd50a11-7fb4…`
2223
+ - ~~`lean_speed_hexbits_are_shorter_than_hex`~~ — lean speed.lean: hexbits_are_shorter_than_hex — hexbitChars &lt; hexChars ∧ hexChars - hexbitChars = 10 ∧ hexbitChars * 100 / hexChars = 68 — decided by the Lean kernel over its whole finite domain, axiom-free · `d3b171cf-2487…`
2224
+ - ~~`lean_speed_hexbits_are_slower_than_hex`~~ — lean speed.lean: hexbits_are_slower_than_hex — hexbitMs &gt; hexMs ∧ hexbitMs * 10 / hexMs = 18 — decided by the Lean kernel over its whole finite domain, axiom-free · `cf4672e4-0be3…`
2206
2225
  - ~~`lean_speed_an_encoding_changes_width_not_the_count_of_operations`~~ — lean speed.lean: an_encoding_changes_width_not_the_count_of_operations — hexbitChars &lt; hexChars ∧ hexbitMs &gt; hexMs ∧ (1048576 / 20 = 52428 ∧ 1048576 / 20 = 52428) — decided by the Lean kernel over its whole finite domain, axiom-free · `9227b54d-7b6f…`
2207
2226
  - ~~`lean_quantum_the_witness_is_about_the_state_not_the_machine`~~ — lean quantum.lean: the_witness_is_about_the_state_not_the_machine — ghzXSupport.length * 2 = (List.range 8).length ∧ (2:Nat) ^ 3 = 8 — decided by the Lean kernel over its whole finite domain, axiom-free · `850e2e33-ed0d…`
2208
2227
 
2209
2228
  </details>
2210
2229
 
2211
- Page content-address: `4524736c-375c-8e8d-88c4-d3e97fbad3f5`. Integrity, not truth — decidable facts and cited status, never a proof of the six open conjectures.
2230
+ Page content-address: `739e6f7e-4b0a-84de-84bb-bcea6054d238`. Integrity, not truth — decidable facts and cited status, never a proof of the six open conjectures.
package/README.md CHANGED
@@ -15,8 +15,8 @@ last because the orbit never reaches it.
15
15
  <sub>SEALED · `8a4b7616-bc25-8fb3-bc42-b0b8e606da96`</sub>
16
16
  - 619 of those 628 are THEOREMS by this deposit's own rule — they close by decide, which is to say the kernel evaluates the proposition over its whole finite domain rather than accepting a declaration; the remaining 9 close by rfl and are declarations.
17
17
  <sub>SEALED · `4aaa302d-a672-8210-8f65-39e2a3026316`</sub>
18
- - 684 of them are sealed into the ledger, each carrying a receipt derived from the one before it.
19
- <sub>SEALED · `a7d42c45-3ec9-827f-a0eb-598d3584c5cc`</sub>
18
+ - 703 of them are sealed into the ledger, each carrying a receipt derived from the one before it.
19
+ <sub>SEALED · `2291d903-c683-805a-b886-6ab7926eb31b`</sub>
20
20
 
21
21
  ## 2 · The ring
22
22
 
@@ -39,10 +39,10 @@ last because the orbit never reaches it.
39
39
 
40
40
  ## 7 · The ledger
41
41
 
42
- - The ledger records 2548 entries with 0 chain breaks, 0 duplicate keys and 0 duplicate receipts.
43
- <sub>SEALED · `6ff7175a-68df-8828-9a61-c340e141692f`</sub>
44
- - The count is 2548, which is 318 octaves and 4 over — the octave is a target the theorems earn, never a quota they are invented to fill.
45
- <sub>SEALED · `e550bc41-24b1-89ae-96bb-02741dc8090f`</sub>
42
+ - The ledger records 2567 entries with 0 chain breaks, 0 duplicate keys and 0 duplicate receipts.
43
+ <sub>SEALED · `59b254fa-d4da-8f0f-9363-997bdc43830e`</sub>
44
+ - The count is 2567, which is 320 octaves and 7 over — the octave is a target the theorems earn, never a quota they are invented to fill.
45
+ <sub>SEALED · `02e65c78-ee20-89b5-862f-33019cfc6d89`</sub>
46
46
 
47
47
  ## 5 · What the gate does and does not do
48
48
 
@@ -172,7 +172,7 @@ this page; there is nowhere else to keep the description in step.
172
172
 
173
173
  **Recovered — claims that computed and were withdrawn for want of a proof** — `recovered.lean`, 15 theorem(s). 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. prior_art_search: literature search performed 2026-09-05, terms "units and non-units of Z/9 multiplicative inverses group of units modulo 9"; prior art found and credited.
174
174
 
175
- 22 of 628 declarations carry no comment of their own and are shown here as the gap they are, not
175
+ 20 of 628 declarations carry no comment of their own and are shown here as the gap they are, not
176
176
  filled with a template.
177
177
 
178
178
  ## 8 · What this build measured about itself
@@ -181,11 +181,11 @@ Read from the artefacts at build time, never carried between runs.
181
181
 
182
182
  | measure | value |
183
183
  |---|---|
184
- | ledger entries | 2,548 — 318 octaves and 4 over |
184
+ | ledger entries | 2,567 — 320 octaves and 7 over |
185
185
  | standing — carries its own proof | **619** |
186
186
  | carried — withdrawn on its own evidence, proved by a live theorem | **434** |
187
- | withdrawn — nothing proves it | 1,495 |
188
- | proved in total | **1053** of 2,548 |
187
+ | withdrawn — nothing proves it | 1,514 |
188
+ | proved in total | **1053** of 2,567 |
189
189
  | standing keys → distinct theorems | 619 sealed, 0 of them keyed twice, 0 unresolvable |
190
190
  | Lean files · theorems | 32 · 619 theorems (closed by exhaustion) + 9 rfl declarations, all axiom-free |
191
191
  | proved `by decide` | 619 of 628 |
@@ -194,7 +194,7 @@ Read from the artefacts at build time, never carried between runs.
194
194
 
195
195
  **On `carried`.** 434 entries were withdrawn for want of a Lean proof and have since been given one, at a new key. Nothing is un-revoked: the original's own evidence is still a TypeScript test, and rewriting its status would erase the fact that it did not hold on what it had. The record says both — withdrawn on its own evidence, standing through the theorem that carries it.
196
196
 
197
- **Why the withdrawn were withdrawn.** 1,386 no Lean proof · 457 tested the removed lexical gate · 60 other · 16 its Lean source was deleted or renamed · 10 circular by construction. Nothing is deleted: the ledger is append-only, so an entry that stopped holding is marked in place with its reason and keeps its receipt.
197
+ **Why the withdrawn were withdrawn.** 1,386 no Lean proof · 457 tested the removed lexical gate · 60 other · 35 its Lean source was deleted or renamed · 10 circular by construction. Nothing is deleted: the ledger is append-only, so an entry that stopped holding is marked in place with its reason and keeps its receipt.
198
198
 
199
199
  **What verification costs.** Proving the set touches all 16,384 leaves; verifying membership afterwards touches 14 — one sibling per level. That is **1,170× less work**, exactly, and the factor grows with the set because N/log N grows. Wall-clock varies with the machine and is left in the build output rather than pinned here. It is not sub-nanosecond and nothing here is: the advantage is a smaller exponent, not a faster clock. The counting is proved in `speed.lean`.
200
200
 
@@ -227,4 +227,4 @@ whether the work restates someone earlier. [The paper](/paper) typesets every st
227
227
 
228
228
  ---
229
229
 
230
- *17 claims, all verified · 619 Lean theorems · 2548 ledger entries · trial root `fe7047f9-d595-8601-8344-7815b2ca1626` · integrity, not truth · 0/7*
230
+ *17 claims, all verified · 619 Lean theorems · 2567 ledger entries · trial root `d295e2c3-b6c1-83e3-8680-202e18691522` · integrity, not truth · 0/7*
package/forensic.md CHANGED
@@ -5,18 +5,18 @@ title: Every state change, dated
5
5
  # Provenance of this deposit's ledger
6
6
 
7
7
  **Recomputed on every build** from git history and the append-only ledger. Regenerate with
8
- `npm run forensic`. Content-address `158f46c2-017e-8a94-bcc4-353a67d20c7c`.
8
+ `npm run forensic`. Content-address `a77fb27f-8538-8d41-b1d6-d6eddf1ef263`.
9
9
 
10
10
  ## What this record establishes
11
11
 
12
12
  | | |
13
13
  |---|---:|
14
- | ledger entries | **2,548** |
14
+ | ledger entries | **2,567** |
15
15
  | standing — proved and sealed | 619 |
16
16
  | carried — withdrawn, proved by a live theorem | 434 |
17
- | withdrawn — nothing currently proves them | 1,495 |
17
+ | withdrawn — nothing currently proves them | 1,514 |
18
18
  | receipt chain, recomputed | **0 breaks — intact** |
19
- | commits that changed ledger state | 573 |
19
+ | commits that changed ledger state | 574 |
20
20
 
21
21
  ## Why entries were withdrawn — the reason recorded at the time
22
22
 
@@ -26,13 +26,13 @@ Verbatim, as written when the entry was revoked. Not inferred afterwards.
26
26
  |---:|---|
27
27
  | 1,011 | dirty: not backed by a Lean proof. Its evidence is a TypeScript test, which reports that a compu |
28
28
  | 443 | revoked in place: its test asserted a lexical drain (computes(boast).binary === 0). The word-lis |
29
- | 16 | orphaned: the theorem this key was sealed from is no longer in src/proof. It was deleted or rena |
29
+ | 35 | orphaned: the theorem this key was sealed from is no longer in src/proof. It was deleted or rena |
30
30
  | 12 | revoked in place: circular by construction AND dependent on the removed lexical gate. |
31
31
  | 10 | revoked in place: circular by construction — the test defines the answer it checks, proving a de |
32
32
  | 1 | revoked in place: its test asserts that a list of proof-boasts written across many scripts and l |
33
33
 
34
34
  **1,011** of
35
- **1,495** withdrawn entries — 67.6% —
35
+ **1,514** withdrawn entries — 66.8% —
36
36
  were withdrawn for want of a Lean proof while their evidence was a TypeScript test that **computed**.
37
37
  Withdrawal costs one line of record; proving costs real work, and a green gate rewards both identically.
38
38
 
package/index.md CHANGED
@@ -21,8 +21,8 @@ last because the orbit never reaches it.
21
21
  <sub>SEALED · `8a4b7616-bc25-8fb3-bc42-b0b8e606da96`</sub>
22
22
  - 619 of those 628 are THEOREMS by this deposit's own rule — they close by decide, which is to say the kernel evaluates the proposition over its whole finite domain rather than accepting a declaration; the remaining 9 close by rfl and are declarations.
23
23
  <sub>SEALED · `4aaa302d-a672-8210-8f65-39e2a3026316`</sub>
24
- - 684 of them are sealed into the ledger, each carrying a receipt derived from the one before it.
25
- <sub>SEALED · `a7d42c45-3ec9-827f-a0eb-598d3584c5cc`</sub>
24
+ - 703 of them are sealed into the ledger, each carrying a receipt derived from the one before it.
25
+ <sub>SEALED · `2291d903-c683-805a-b886-6ab7926eb31b`</sub>
26
26
 
27
27
  ## 2 · The ring
28
28
 
@@ -45,10 +45,10 @@ last because the orbit never reaches it.
45
45
 
46
46
  ## 7 · The ledger
47
47
 
48
- - The ledger records 2548 entries with 0 chain breaks, 0 duplicate keys and 0 duplicate receipts.
49
- <sub>SEALED · `6ff7175a-68df-8828-9a61-c340e141692f`</sub>
50
- - The count is 2548, which is 318 octaves and 4 over — the octave is a target the theorems earn, never a quota they are invented to fill.
51
- <sub>SEALED · `e550bc41-24b1-89ae-96bb-02741dc8090f`</sub>
48
+ - The ledger records 2567 entries with 0 chain breaks, 0 duplicate keys and 0 duplicate receipts.
49
+ <sub>SEALED · `59b254fa-d4da-8f0f-9363-997bdc43830e`</sub>
50
+ - The count is 2567, which is 320 octaves and 7 over — the octave is a target the theorems earn, never a quota they are invented to fill.
51
+ <sub>SEALED · `02e65c78-ee20-89b5-862f-33019cfc6d89`</sub>
52
52
 
53
53
  ## 5 · What the gate does and does not do
54
54
 
@@ -178,7 +178,7 @@ this page; there is nowhere else to keep the description in step.
178
178
 
179
179
  **Recovered — claims that computed and were withdrawn for want of a proof** — `recovered.lean`, 15 theorem(s). 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. prior_art_search: literature search performed 2026-09-05, terms "units and non-units of Z/9 multiplicative inverses group of units modulo 9"; prior art found and credited.
180
180
 
181
- 22 of 628 declarations carry no comment of their own and are shown here as the gap they are, not
181
+ 20 of 628 declarations carry no comment of their own and are shown here as the gap they are, not
182
182
  filled with a template.
183
183
 
184
184
  ## 8 · What this build measured about itself
@@ -187,11 +187,11 @@ Read from the artefacts at build time, never carried between runs.
187
187
 
188
188
  | measure | value |
189
189
  |---|---|
190
- | ledger entries | 2,548 — 318 octaves and 4 over |
190
+ | ledger entries | 2,567 — 320 octaves and 7 over |
191
191
  | standing — carries its own proof | **619** |
192
192
  | carried — withdrawn on its own evidence, proved by a live theorem | **434** |
193
- | withdrawn — nothing proves it | 1,495 |
194
- | proved in total | **1053** of 2,548 |
193
+ | withdrawn — nothing proves it | 1,514 |
194
+ | proved in total | **1053** of 2,567 |
195
195
  | standing keys → distinct theorems | 619 sealed, 0 of them keyed twice, 0 unresolvable |
196
196
  | Lean files · theorems | 32 · 619 theorems (closed by exhaustion) + 9 rfl declarations, all axiom-free |
197
197
  | proved `by decide` | 619 of 628 |
@@ -200,7 +200,7 @@ Read from the artefacts at build time, never carried between runs.
200
200
 
201
201
  **On `carried`.** 434 entries were withdrawn for want of a Lean proof and have since been given one, at a new key. Nothing is un-revoked: the original's own evidence is still a TypeScript test, and rewriting its status would erase the fact that it did not hold on what it had. The record says both — withdrawn on its own evidence, standing through the theorem that carries it.
202
202
 
203
- **Why the withdrawn were withdrawn.** 1,386 no Lean proof · 457 tested the removed lexical gate · 60 other · 16 its Lean source was deleted or renamed · 10 circular by construction. Nothing is deleted: the ledger is append-only, so an entry that stopped holding is marked in place with its reason and keeps its receipt.
203
+ **Why the withdrawn were withdrawn.** 1,386 no Lean proof · 457 tested the removed lexical gate · 60 other · 35 its Lean source was deleted or renamed · 10 circular by construction. Nothing is deleted: the ledger is append-only, so an entry that stopped holding is marked in place with its reason and keeps its receipt.
204
204
 
205
205
  **What verification costs.** Proving the set touches all 16,384 leaves; verifying membership afterwards touches 14 — one sibling per level. That is **1,170× less work**, exactly, and the factor grows with the set because N/log N grows. Wall-clock varies with the machine and is left in the build output rather than pinned here. It is not sub-nanosecond and nothing here is: the advantage is a smaller exponent, not a faster clock. The counting is proved in `speed.lean`.
206
206
 
@@ -216,4 +216,4 @@ because no test was written that would seal them.
216
216
 
217
217
  ---
218
218
 
219
- *17 claims, all verified · 619 Lean theorems · 2548 ledger entries · trial root `fe7047f9-d595-8601-8344-7815b2ca1626` · integrity, not truth · 0/7*
219
+ *17 claims, all verified · 619 Lean theorems · 2567 ledger entries · trial root `d295e2c3-b6c1-83e3-8680-202e18691522` · integrity, not truth · 0/7*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ceccec/millennium-solutions",
3
- "version": "9.0.9",
3
+ "version": "9.1.1",
4
4
  "description": "Verifiable, recomputable ℤ/9 vortex framework in ONE package — content-addressing, audit ledger, exact arithmetic (0/7), and the honesty toolkit. Facts only.",
5
5
  "author": {
6
6
  "name": "Tsvetan Rouschev",