@ceccec/millennium-solutions 9.2.6 → 9.2.7
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 +6 -6
- package/AXIOMS.md +6 -6
- package/CHALLENGES.md +47 -3
- package/PRIOR-ART.md +11 -11
- 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 +617 -437
- package/speedup.md +3 -3
- package/src/proof/discovered.json +110 -0
- package/src/proof/light.lean +8 -0
- package/src/proof/mechanical.lean +69 -0
- package/src/proof/reach.lean +13 -0
- package/src/proof/trial-all.json +132 -0
- package/src/proof/z9plus.lean +92 -0
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 **2629** ledger entries and **59** domains, recomputed each build. The advantage is
|
|
11
11
|
> real and **measured**, and honestly bounded: a **verification and reuse** complexity reduction — **not**
|
|
12
12
|
> faster original compute, **not** faster than light, **not** quantum.
|
|
13
13
|
|
|
@@ -33,9 +33,9 @@ theorems verify in `⌈log₂N⌉`. So one proof covers the whole [rosetta](/):
|
|
|
33
33
|
|
|
34
34
|
## Discovery lead — a lead, never a verdict
|
|
35
35
|
|
|
36
|
-
Grouping the
|
|
36
|
+
Grouping the 2629 receipts by the digital root of their address, the **sparsest** region is digit
|
|
37
37
|
**3** (265) — a candidate area to examine, not a finding. The ledger is currently held
|
|
38
|
-
at **
|
|
38
|
+
at **2629** (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**.
|
|
@@ -18786,5 +18786,115 @@
|
|
|
18786
18786
|
"key": "lean_split_the_coin_step_and_the_coins_are_inverse_for_every_c",
|
|
18787
18787
|
"name": "lean split.lean: the_coin_step_and_the_coins_are_inverse_for_every_c — ∀ c : Nat, 3 * c / 3 = c ∧ (3 * c) % 3 = 0 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18788
18788
|
"receipt": "1c1ebe41-4e80-80ad-b352-e90a09922838"
|
|
18789
|
+
},
|
|
18790
|
+
{
|
|
18791
|
+
"key": "lean_light_the_second_returns_from_the_metre_and_the_period_for_every_s",
|
|
18792
|
+
"name": "lean light.lean: the_second_returns_from_the_metre_and_the_period_for_every_s — ∀ 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",
|
|
18793
|
+
"receipt": "1de974bb-854a-879c-a8f0-712b59f8d7bc"
|
|
18794
|
+
},
|
|
18795
|
+
{
|
|
18796
|
+
"key": "lean_mechanical_repeated_doubling_is_the_power_of_two_for_every_k",
|
|
18797
|
+
"name": "lean mechanical.lean: repeated_doubling_is_the_power_of_two_for_every_k — ∀ k : Nat, dbl k = 2 ^ k — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18798
|
+
"receipt": "71d6eeaa-fd06-8af1-893f-dfa60297892d"
|
|
18799
|
+
},
|
|
18800
|
+
{
|
|
18801
|
+
"key": "lean_mechanical_relation_digitroot_is_residue_mod9_for_every_n",
|
|
18802
|
+
"name": "lean mechanical.lean: relation_digitroot_is_residue_mod9_for_every_n — ∀ n : Nat, 0 < n → DR n = (n - 1) % 9 + 1 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18803
|
+
"receipt": "22aed33c-e7ff-80ef-aded-b466c40bf0e4"
|
|
18804
|
+
},
|
|
18805
|
+
{
|
|
18806
|
+
"key": "lean_mechanical_the_nine_times_table_always_digital_roots_to_nine_for_every_k",
|
|
18807
|
+
"name": "lean mechanical.lean: the_nine_times_table_always_digital_roots_to_nine_for_every_k — ∀ k : Nat, 0 < k → DR (9 * k) = 9 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18808
|
+
"receipt": "36b3b4ea-25f1-8083-b075-d707f2fb91ea"
|
|
18809
|
+
},
|
|
18810
|
+
{
|
|
18811
|
+
"key": "lean_mechanical_the_digital_root_has_the_residue_of_its_number",
|
|
18812
|
+
"name": "lean mechanical.lean: the_digital_root_has_the_residue_of_its_number — ∀ n : Nat, DR n % 9 = n % 9 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18813
|
+
"receipt": "efc4383f-1f52-8cfc-9d4a-d291f4aa5bd4"
|
|
18814
|
+
},
|
|
18815
|
+
{
|
|
18816
|
+
"key": "lean_mechanical_a_digital_root_lies_between_one_and_nine",
|
|
18817
|
+
"name": "lean mechanical.lean: a_digital_root_lies_between_one_and_nine — ∀ n : Nat, 0 < n → 1 ≤ DR n ∧ DR n ≤ 9 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18818
|
+
"receipt": "298da32e-60d7-8bf9-9135-c6e904ae937f"
|
|
18819
|
+
},
|
|
18820
|
+
{
|
|
18821
|
+
"key": "lean_mechanical_casting_out_nines_is_multiplicative_for_every_a_b",
|
|
18822
|
+
"name": "lean mechanical.lean: casting_out_nines_is_multiplicative_for_every_a_b — ∀ a b : Nat, DR (a * b) = DR (DR a * DR b) — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18823
|
+
"receipt": "58842a8d-45b2-8316-b9a6-440b595e6782"
|
|
18824
|
+
},
|
|
18825
|
+
{
|
|
18826
|
+
"key": "lean_mechanical_the_moduli_dimensions_are_three_g_minus_three_and_six_g_minus_six_for_every_g",
|
|
18827
|
+
"name": "lean mechanical.lean: the_moduli_dimensions_are_three_g_minus_three_and_six_g_minus_six_for_every_g — ∀ g : Nat, 3 * g - 3 = (6 * g - 6) / 2 ∧ 6 * g - 6 = 2 * (3 * g - 3) — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18828
|
+
"receipt": "633ba212-336a-8600-90d6-836751f6b813"
|
|
18829
|
+
},
|
|
18830
|
+
{
|
|
18831
|
+
"key": "lean_reach_exhaustion_never_reaches_its_own_bound_for_every_n",
|
|
18832
|
+
"name": "lean reach.lean: exhaustion_never_reaches_its_own_bound_for_every_n — ∀ n : Nat, (List.range n).length = n ∧ n ∉ List.range n — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18833
|
+
"receipt": "dfc2849f-3870-823b-ade5-f036c5f40166"
|
|
18834
|
+
},
|
|
18835
|
+
{
|
|
18836
|
+
"key": "lean_reach_the_successor_of_every_bound_lies_outside_for_every_n",
|
|
18837
|
+
"name": "lean reach.lean: the_successor_of_every_bound_lies_outside_for_every_n — ∀ n : Nat, n + 1 ∉ List.range n — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18838
|
+
"receipt": "1113761c-4967-898e-a9d9-d836a27b42ae"
|
|
18839
|
+
},
|
|
18840
|
+
{
|
|
18841
|
+
"key": "lean_reach_doubling_the_domain_leaves_the_same_hole_for_every_n",
|
|
18842
|
+
"name": "lean reach.lean: doubling_the_domain_leaves_the_same_hole_for_every_n — ∀ n : Nat, 2 * n ∉ List.range (2 * n) — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18843
|
+
"receipt": "f57338c8-104b-8058-90f6-b86622f64f86"
|
|
18844
|
+
},
|
|
18845
|
+
{
|
|
18846
|
+
"key": "lean_z9plus_doubling_has_period_six_for_every_k",
|
|
18847
|
+
"name": "lean z9plus.lean: doubling_has_period_six_for_every_k — ∀ k : Nat, pw 2 (k + 6) = pw 2 k — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18848
|
+
"receipt": "2c9ca8bc-08a6-87e8-ba10-0390547c7318"
|
|
18849
|
+
},
|
|
18850
|
+
{
|
|
18851
|
+
"key": "lean_z9plus_orbit_digital_roots_have_period_six_for_every_k",
|
|
18852
|
+
"name": "lean z9plus.lean: orbit_digital_roots_have_period_six_for_every_k — ∀ k : Nat, dr (pw 2 (k + 6)) = dr (pw 2 k) — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18853
|
+
"receipt": "e88dfdf8-3c33-87c9-b480-65d2db2769ac"
|
|
18854
|
+
},
|
|
18855
|
+
{
|
|
18856
|
+
"key": "lean_z9plus_the_doubling_orbit_is_read_from_the_exponent_mod_six",
|
|
18857
|
+
"name": "lean z9plus.lean: the_doubling_orbit_is_read_from_the_exponent_mod_six — ∀ k : Nat, pw 2 k = pw 2 (k % 6) — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18858
|
+
"receipt": "c688c966-b59f-8e39-91d8-fa1f9fc564a0"
|
|
18859
|
+
},
|
|
18860
|
+
{
|
|
18861
|
+
"key": "lean_z9plus_the_orbit_never_meets_the_triad_for_every_k",
|
|
18862
|
+
"name": "lean z9plus.lean: the_orbit_never_meets_the_triad_for_every_k — ∀ k : Nat, pw 2 k ≠ 0 ∧ pw 2 k ≠ 3 ∧ pw 2 k ≠ 6 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18863
|
+
"receipt": "8c3dfc38-91e6-8a00-9d2f-ac18974cd169"
|
|
18864
|
+
},
|
|
18865
|
+
{
|
|
18866
|
+
"key": "lean_z9plus_fibonacci_residues_mod_nine_repeat_every_twenty_four_steps",
|
|
18867
|
+
"name": "lean z9plus.lean: fibonacci_residues_mod_nine_repeat_every_twenty_four_steps — ∀ k : Nat, fib (k + 24) % 9 = fib k % 9 ∧ fib (k + 25) % 9 = fib (k + 1) % 9 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18868
|
+
"receipt": "04f6a9cd-b19f-8b13-b5d9-7d88fec0139e"
|
|
18869
|
+
},
|
|
18870
|
+
{
|
|
18871
|
+
"key": "lean_z9plus_pisano_period_mod_nine_is_twenty_four_for_every_k",
|
|
18872
|
+
"name": "lean z9plus.lean: pisano_period_mod_nine_is_twenty_four_for_every_k — ∀ k : Nat, fib9 (k + 24) = fib9 k — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18873
|
+
"receipt": "985c1ebe-dc19-877e-8573-82765db72126"
|
|
18874
|
+
},
|
|
18875
|
+
{
|
|
18876
|
+
"key": "lean_z9plus_the_fuelled_gcd_is_the_gcd_when_the_fuel_exceeds_the_second_argument",
|
|
18877
|
+
"name": "lean z9plus.lean: the_fuelled_gcd_is_the_gcd_when_the_fuel_exceeds_the_second_argument — ∀ f a b : Nat, b < f → gcdF f a b = Nat.gcd a b — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18878
|
+
"receipt": "73c32b16-76ca-8bbc-91f3-3d550cd02477"
|
|
18879
|
+
},
|
|
18880
|
+
{
|
|
18881
|
+
"key": "lean_z9plus_consecutive_fibonacci_numbers_are_coprime",
|
|
18882
|
+
"name": "lean z9plus.lean: consecutive_fibonacci_numbers_are_coprime — ∀ n : Nat, Nat.gcd (fib n) (fib (n + 1)) = 1 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18883
|
+
"receipt": "5ae6ebcf-4c89-80d4-bc8c-1e5fed479a69"
|
|
18884
|
+
},
|
|
18885
|
+
{
|
|
18886
|
+
"key": "lean_z9plus_consecutive_fibonacci_are_coprime_for_every_n",
|
|
18887
|
+
"name": "lean z9plus.lean: consecutive_fibonacci_are_coprime_for_every_n — ∀ n : Nat, gcd9 (fib n) (fib (n + 1)) = 1 — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18888
|
+
"receipt": "424d4751-1648-8d01-b6aa-e31be117166a"
|
|
18889
|
+
},
|
|
18890
|
+
{
|
|
18891
|
+
"key": "lean_z9plus_digital_root_agrees_with_the_residue_for_every_n",
|
|
18892
|
+
"name": "lean z9plus.lean: digital_root_agrees_with_the_residue_for_every_n — ∀ n : Nat, 0 < n → (dr n = 9 ↔ m9 n = 0) — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18893
|
+
"receipt": "20da0230-2b9f-8735-848e-8009809d9f04"
|
|
18894
|
+
},
|
|
18895
|
+
{
|
|
18896
|
+
"key": "lean_z9plus_digital_root_is_the_digit_sum_residue_for_every_n",
|
|
18897
|
+
"name": "lean z9plus.lean: digital_root_is_the_digit_sum_residue_for_every_n — ∀ n : Nat, m9 (digitSum n) = m9 n — proved by the Lean kernel for every value (by\n intro), standard axioms only — checked by lean.ts",
|
|
18898
|
+
"receipt": "694fefdf-a71b-8019-84e5-04477e7be3d8"
|
|
18789
18899
|
}
|
|
18790
18900
|
]
|
package/src/proof/light.lean
CHANGED
|
@@ -147,4 +147,12 @@ theorem the_root_moves_with_the_unit_so_it_is_not_about_light :
|
|
|
147
147
|
theorem the_definitions_are_seven_and_travel_fixes_zero :
|
|
148
148
|
defining.length = 7 ∧ travel 0 = 0 := by decide
|
|
149
149
|
|
|
150
|
+
|
|
151
|
+
-- ── the capped row above, proved for every whole number of seconds — no bound ───────────────────────────────
|
|
152
|
+
-- the second reads back from the metre and from the caesium period at every s, not only s < 100.
|
|
153
|
+
theorem the_second_returns_from_the_metre_and_the_period_for_every_s :
|
|
154
|
+
∀ s : Nat, travel s / c = s ∧ periods s / dNuCs = s := by
|
|
155
|
+
intro s
|
|
156
|
+
exact ⟨Nat.mul_div_cancel_left s (by decide), Nat.mul_div_cancel_left s (by decide)⟩
|
|
157
|
+
|
|
150
158
|
end Light
|
|
@@ -452,4 +452,73 @@ theorem the_product_of_any_three_consecutive_integers_is_divisible_by_six_for_ev
|
|
|
452
452
|
have h3 := the_product_of_three_consecutive_numbers_is_a_multiple_of_three n
|
|
453
453
|
omega
|
|
454
454
|
|
|
455
|
+
|
|
456
|
+
-- ── the capped rows above, proved for every value — no bound ─────────────────────────────────────────────────
|
|
457
|
+
-- relation_digitroot_is_residue_mod9 (n ≤ 200), the_nine_times_table_always_digital_roots_to_nine (k ≤ 60),
|
|
458
|
+
-- casting_out_nines_is_multiplicative (a, b ≤ 60), repeated_doubling_is_the_power_of_two (k ≤ 20) and
|
|
459
|
+
-- the_moduli_dimensions (g ≤ 20) were checked up to a bound; these prove them for every value.
|
|
460
|
+
theorem repeated_doubling_is_the_power_of_two_for_every_k : ∀ k : Nat, dbl k = 2 ^ k := by
|
|
461
|
+
intro k
|
|
462
|
+
induction k with
|
|
463
|
+
| zero => rfl
|
|
464
|
+
| succ k ih =>
|
|
465
|
+
show 2 * dbl k = 2 ^ (k + 1)
|
|
466
|
+
rw [ih, Nat.pow_succ, Nat.mul_comm]
|
|
467
|
+
|
|
468
|
+
theorem relation_digitroot_is_residue_mod9_for_every_n : ∀ n : Nat, 0 < n → DR n = (n - 1) % 9 + 1 := by
|
|
469
|
+
intro n hn
|
|
470
|
+
unfold DR
|
|
471
|
+
rw [if_neg (show ¬ ((n == 0) = true) by simp; omega)]
|
|
472
|
+
omega
|
|
473
|
+
|
|
474
|
+
theorem the_nine_times_table_always_digital_roots_to_nine_for_every_k : ∀ k : Nat, 0 < k → DR (9 * k) = 9 := by
|
|
475
|
+
intro k hk
|
|
476
|
+
rw [relation_digitroot_is_residue_mod9_for_every_n (9 * k) (by omega)]
|
|
477
|
+
omega
|
|
478
|
+
|
|
479
|
+
theorem the_digital_root_has_the_residue_of_its_number : ∀ n : Nat, DR n % 9 = n % 9 := by
|
|
480
|
+
intro n
|
|
481
|
+
cases n with
|
|
482
|
+
| zero => rfl
|
|
483
|
+
| succ m =>
|
|
484
|
+
rw [relation_digitroot_is_residue_mod9_for_every_n (m + 1) (Nat.succ_pos m)]
|
|
485
|
+
omega
|
|
486
|
+
|
|
487
|
+
theorem a_digital_root_lies_between_one_and_nine : ∀ n : Nat, 0 < n → 1 ≤ DR n ∧ DR n ≤ 9 := by
|
|
488
|
+
intro n hn
|
|
489
|
+
rw [relation_digitroot_is_residue_mod9_for_every_n n hn]
|
|
490
|
+
have := Nat.mod_lt (n - 1) (show 0 < 9 by decide)
|
|
491
|
+
exact ⟨by omega, by omega⟩
|
|
492
|
+
|
|
493
|
+
theorem casting_out_nines_is_multiplicative_for_every_a_b : ∀ a b : Nat, DR (a * b) = DR (DR a * DR b) := by
|
|
494
|
+
intro a b
|
|
495
|
+
cases a with
|
|
496
|
+
| zero => rw [Nat.zero_mul, show DR 0 = 0 from rfl, Nat.zero_mul]; rfl
|
|
497
|
+
| succ a =>
|
|
498
|
+
cases b with
|
|
499
|
+
| zero => rw [Nat.mul_zero, show DR 0 = 0 from rfl, Nat.mul_zero]; rfl
|
|
500
|
+
| succ b =>
|
|
501
|
+
have hab : 0 < (a + 1) * (b + 1) := Nat.mul_pos (Nat.succ_pos a) (Nat.succ_pos b)
|
|
502
|
+
have ha := a_digital_root_lies_between_one_and_nine (a + 1) (Nat.succ_pos a)
|
|
503
|
+
have hb := a_digital_root_lies_between_one_and_nine (b + 1) (Nat.succ_pos b)
|
|
504
|
+
have hp : 0 < DR (a + 1) * DR (b + 1) := Nat.mul_pos (by omega) (by omega)
|
|
505
|
+
have r1 := the_digital_root_has_the_residue_of_its_number ((a + 1) * (b + 1))
|
|
506
|
+
have r2 := the_digital_root_has_the_residue_of_its_number (DR (a + 1) * DR (b + 1))
|
|
507
|
+
have r3 : DR (a + 1) * DR (b + 1) % 9 = (a + 1) * (b + 1) % 9 := by
|
|
508
|
+
rw [Nat.mul_mod, the_digital_root_has_the_residue_of_its_number,
|
|
509
|
+
the_digital_root_has_the_residue_of_its_number, ← Nat.mul_mod]
|
|
510
|
+
obtain ⟨b1l, b1r⟩ := a_digital_root_lies_between_one_and_nine _ hab
|
|
511
|
+
obtain ⟨b2l, b2r⟩ := a_digital_root_lies_between_one_and_nine _ hp
|
|
512
|
+
clear ha hb
|
|
513
|
+
generalize DR ((a + 1) * (b + 1)) = x at *
|
|
514
|
+
generalize DR (DR (a + 1) * DR (b + 1)) = y at *
|
|
515
|
+
generalize (a + 1) * (b + 1) = m at *
|
|
516
|
+
generalize DR (a + 1) * DR (b + 1) = p at *
|
|
517
|
+
omega
|
|
518
|
+
|
|
519
|
+
theorem the_moduli_dimensions_are_three_g_minus_three_and_six_g_minus_six_for_every_g :
|
|
520
|
+
∀ g : Nat, 3 * g - 3 = (6 * g - 6) / 2 ∧ 6 * g - 6 = 2 * (3 * g - 3) := by
|
|
521
|
+
intro g
|
|
522
|
+
exact ⟨by omega, by omega⟩
|
|
523
|
+
|
|
455
524
|
end Mechanical
|
package/src/proof/reach.lean
CHANGED
|
@@ -89,4 +89,17 @@ theorem the_predecessor_returns_every_successor : ∀ n : Nat, (n + 1) - 1 = n :
|
|
|
89
89
|
-- named for one it cannot observe is worse than no theorem: it reads as a kernel-checked proof of a
|
|
90
90
|
-- statement the kernel never saw.
|
|
91
91
|
|
|
92
|
+
|
|
93
|
+
-- ── the three bounded rows above, proved for every bound — no list of bounds ─────────────────────────────────
|
|
94
|
+
-- the file's own point, now without a range: no exhaustion over 0..n-1 contains n, n + 1, or (at 2n) 2n.
|
|
95
|
+
theorem exhaustion_never_reaches_its_own_bound_for_every_n : ∀ n : Nat, (List.range n).length = n ∧ n ∉ List.range n := by
|
|
96
|
+
intro n
|
|
97
|
+
exact ⟨List.length_range n, fun h => Nat.lt_irrefl n (List.mem_range.mp h)⟩
|
|
98
|
+
theorem the_successor_of_every_bound_lies_outside_for_every_n : ∀ n : Nat, n + 1 ∉ List.range n := by
|
|
99
|
+
intro n h
|
|
100
|
+
exact Nat.lt_irrefl n (Nat.lt_trans (Nat.lt_succ_self n) (List.mem_range.mp h))
|
|
101
|
+
theorem doubling_the_domain_leaves_the_same_hole_for_every_n : ∀ n : Nat, 2 * n ∉ List.range (2 * n) := by
|
|
102
|
+
intro n h
|
|
103
|
+
exact Nat.lt_irrefl (2 * n) (List.mem_range.mp h)
|
|
104
|
+
|
|
92
105
|
end Reach
|
package/src/proof/trial-all.json
CHANGED
|
@@ -15640,5 +15640,137 @@
|
|
|
15640
15640
|
"verdict": "UNVERIFIED",
|
|
15641
15641
|
"ground": "no candidate in the current space — nothing to recompute",
|
|
15642
15642
|
"receipt": "1c1ebe41-4e80-80ad-b352-e90a09922838"
|
|
15643
|
+
},
|
|
15644
|
+
{
|
|
15645
|
+
"key": "lean_light_the_second_returns_from_the_metre_and_the_period_for_every_s",
|
|
15646
|
+
"verdict": "UNVERIFIED",
|
|
15647
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15648
|
+
"receipt": "1de974bb-854a-879c-a8f0-712b59f8d7bc"
|
|
15649
|
+
},
|
|
15650
|
+
{
|
|
15651
|
+
"key": "lean_mechanical_repeated_doubling_is_the_power_of_two_for_every_k",
|
|
15652
|
+
"verdict": "UNVERIFIED",
|
|
15653
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15654
|
+
"receipt": "71d6eeaa-fd06-8af1-893f-dfa60297892d"
|
|
15655
|
+
},
|
|
15656
|
+
{
|
|
15657
|
+
"key": "lean_mechanical_relation_digitroot_is_residue_mod9_for_every_n",
|
|
15658
|
+
"verdict": "UNVERIFIED",
|
|
15659
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15660
|
+
"receipt": "22aed33c-e7ff-80ef-aded-b466c40bf0e4"
|
|
15661
|
+
},
|
|
15662
|
+
{
|
|
15663
|
+
"key": "lean_mechanical_the_nine_times_table_always_digital_roots_to_nine_for_every_k",
|
|
15664
|
+
"verdict": "UNVERIFIED",
|
|
15665
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15666
|
+
"receipt": "36b3b4ea-25f1-8083-b075-d707f2fb91ea"
|
|
15667
|
+
},
|
|
15668
|
+
{
|
|
15669
|
+
"key": "lean_mechanical_the_digital_root_has_the_residue_of_its_number",
|
|
15670
|
+
"verdict": "UNVERIFIED",
|
|
15671
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15672
|
+
"receipt": "efc4383f-1f52-8cfc-9d4a-d291f4aa5bd4"
|
|
15673
|
+
},
|
|
15674
|
+
{
|
|
15675
|
+
"key": "lean_mechanical_a_digital_root_lies_between_one_and_nine",
|
|
15676
|
+
"verdict": "UNVERIFIED",
|
|
15677
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15678
|
+
"receipt": "298da32e-60d7-8bf9-9135-c6e904ae937f"
|
|
15679
|
+
},
|
|
15680
|
+
{
|
|
15681
|
+
"key": "lean_mechanical_casting_out_nines_is_multiplicative_for_every_a_b",
|
|
15682
|
+
"verdict": "UNVERIFIED",
|
|
15683
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15684
|
+
"receipt": "58842a8d-45b2-8316-b9a6-440b595e6782"
|
|
15685
|
+
},
|
|
15686
|
+
{
|
|
15687
|
+
"key": "lean_mechanical_the_moduli_dimensions_are_three_g_minus_three_and_six_g_minus_six_for_every_g",
|
|
15688
|
+
"verdict": "UNVERIFIED",
|
|
15689
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15690
|
+
"receipt": "633ba212-336a-8600-90d6-836751f6b813"
|
|
15691
|
+
},
|
|
15692
|
+
{
|
|
15693
|
+
"key": "lean_reach_exhaustion_never_reaches_its_own_bound_for_every_n",
|
|
15694
|
+
"verdict": "UNVERIFIED",
|
|
15695
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15696
|
+
"receipt": "dfc2849f-3870-823b-ade5-f036c5f40166"
|
|
15697
|
+
},
|
|
15698
|
+
{
|
|
15699
|
+
"key": "lean_reach_the_successor_of_every_bound_lies_outside_for_every_n",
|
|
15700
|
+
"verdict": "UNVERIFIED",
|
|
15701
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15702
|
+
"receipt": "1113761c-4967-898e-a9d9-d836a27b42ae"
|
|
15703
|
+
},
|
|
15704
|
+
{
|
|
15705
|
+
"key": "lean_reach_doubling_the_domain_leaves_the_same_hole_for_every_n",
|
|
15706
|
+
"verdict": "UNVERIFIED",
|
|
15707
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15708
|
+
"receipt": "f57338c8-104b-8058-90f6-b86622f64f86"
|
|
15709
|
+
},
|
|
15710
|
+
{
|
|
15711
|
+
"key": "lean_z9plus_doubling_has_period_six_for_every_k",
|
|
15712
|
+
"verdict": "UNVERIFIED",
|
|
15713
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15714
|
+
"receipt": "2c9ca8bc-08a6-87e8-ba10-0390547c7318"
|
|
15715
|
+
},
|
|
15716
|
+
{
|
|
15717
|
+
"key": "lean_z9plus_orbit_digital_roots_have_period_six_for_every_k",
|
|
15718
|
+
"verdict": "UNVERIFIED",
|
|
15719
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15720
|
+
"receipt": "e88dfdf8-3c33-87c9-b480-65d2db2769ac"
|
|
15721
|
+
},
|
|
15722
|
+
{
|
|
15723
|
+
"key": "lean_z9plus_the_doubling_orbit_is_read_from_the_exponent_mod_six",
|
|
15724
|
+
"verdict": "UNVERIFIED",
|
|
15725
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15726
|
+
"receipt": "c688c966-b59f-8e39-91d8-fa1f9fc564a0"
|
|
15727
|
+
},
|
|
15728
|
+
{
|
|
15729
|
+
"key": "lean_z9plus_the_orbit_never_meets_the_triad_for_every_k",
|
|
15730
|
+
"verdict": "UNVERIFIED",
|
|
15731
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15732
|
+
"receipt": "8c3dfc38-91e6-8a00-9d2f-ac18974cd169"
|
|
15733
|
+
},
|
|
15734
|
+
{
|
|
15735
|
+
"key": "lean_z9plus_fibonacci_residues_mod_nine_repeat_every_twenty_four_steps",
|
|
15736
|
+
"verdict": "UNVERIFIED",
|
|
15737
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15738
|
+
"receipt": "04f6a9cd-b19f-8b13-b5d9-7d88fec0139e"
|
|
15739
|
+
},
|
|
15740
|
+
{
|
|
15741
|
+
"key": "lean_z9plus_pisano_period_mod_nine_is_twenty_four_for_every_k",
|
|
15742
|
+
"verdict": "UNVERIFIED",
|
|
15743
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15744
|
+
"receipt": "985c1ebe-dc19-877e-8573-82765db72126"
|
|
15745
|
+
},
|
|
15746
|
+
{
|
|
15747
|
+
"key": "lean_z9plus_the_fuelled_gcd_is_the_gcd_when_the_fuel_exceeds_the_second_argument",
|
|
15748
|
+
"verdict": "UNVERIFIED",
|
|
15749
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15750
|
+
"receipt": "73c32b16-76ca-8bbc-91f3-3d550cd02477"
|
|
15751
|
+
},
|
|
15752
|
+
{
|
|
15753
|
+
"key": "lean_z9plus_consecutive_fibonacci_numbers_are_coprime",
|
|
15754
|
+
"verdict": "UNVERIFIED",
|
|
15755
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15756
|
+
"receipt": "5ae6ebcf-4c89-80d4-bc8c-1e5fed479a69"
|
|
15757
|
+
},
|
|
15758
|
+
{
|
|
15759
|
+
"key": "lean_z9plus_consecutive_fibonacci_are_coprime_for_every_n",
|
|
15760
|
+
"verdict": "UNVERIFIED",
|
|
15761
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15762
|
+
"receipt": "424d4751-1648-8d01-b6aa-e31be117166a"
|
|
15763
|
+
},
|
|
15764
|
+
{
|
|
15765
|
+
"key": "lean_z9plus_digital_root_agrees_with_the_residue_for_every_n",
|
|
15766
|
+
"verdict": "UNVERIFIED",
|
|
15767
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15768
|
+
"receipt": "20da0230-2b9f-8735-848e-8009809d9f04"
|
|
15769
|
+
},
|
|
15770
|
+
{
|
|
15771
|
+
"key": "lean_z9plus_digital_root_is_the_digit_sum_residue_for_every_n",
|
|
15772
|
+
"verdict": "UNVERIFIED",
|
|
15773
|
+
"ground": "no candidate in the current space — nothing to recompute",
|
|
15774
|
+
"receipt": "694fefdf-a71b-8019-84e5-04477e7be3d8"
|
|
15643
15775
|
}
|
|
15644
15776
|
]
|
package/src/proof/z9plus.lean
CHANGED
|
@@ -205,4 +205,96 @@ theorem both_parts_sum_to_zero :
|
|
|
205
205
|
m9 ((R.filter (fun d => R.any (fun e => m9 (d * e) == 1))).foldl (· + ·) 0) == 0
|
|
206
206
|
∧ m9 ((R.filter (fun d => ! R.any (fun e => m9 (d * e) == 1))).foldl (· + ·) 0) == 0 := by decide
|
|
207
207
|
|
|
208
|
+
|
|
209
|
+
-- ── the capped rows above, proved for every value — no bound ─────────────────────────────────────────────────
|
|
210
|
+
-- doubling_has_period_six (k < 30), orbit_digital_roots_have_period_six (k < 24), the_orbit_never_meets_the_triad
|
|
211
|
+
-- (k < 40), pisano_period_mod_nine_is_twenty_four (k < 30), consecutive_fibonacci_are_coprime (n ≤ 25) and
|
|
212
|
+
-- digital_root_agrees_with_the_residue (n ≤ 300) were checked up to a bound; these prove them for every value.
|
|
213
|
+
-- 2⁶ ≡ 1 mod 9 turns the orbit; the pair (fib k, fib (k+1)) mod 9 returns after 24 steps; gcd9 is Euclid with fuel
|
|
214
|
+
-- a + b + 1, which always exceeds what Euclid needs, so it is the gcd.
|
|
215
|
+
theorem doubling_has_period_six_for_every_k : ∀ k : Nat, pw 2 (k + 6) = pw 2 k := by
|
|
216
|
+
intro k
|
|
217
|
+
unfold pw m9
|
|
218
|
+
rw [Nat.pow_add, Nat.mul_mod]
|
|
219
|
+
have h : 2 ^ 6 % 9 = 1 := by decide
|
|
220
|
+
rw [h, Nat.mul_one, Nat.mod_mod]
|
|
221
|
+
|
|
222
|
+
theorem orbit_digital_roots_have_period_six_for_every_k : ∀ k : Nat, dr (pw 2 (k + 6)) = dr (pw 2 k) := by
|
|
223
|
+
intro k
|
|
224
|
+
rw [doubling_has_period_six_for_every_k]
|
|
225
|
+
|
|
226
|
+
theorem the_doubling_orbit_is_read_from_the_exponent_mod_six : ∀ k : Nat, pw 2 k = pw 2 (k % 6) := by
|
|
227
|
+
intro k
|
|
228
|
+
induction k using Nat.strongRecOn with
|
|
229
|
+
| _ k ih =>
|
|
230
|
+
if hk : k < 6 then rw [Nat.mod_eq_of_lt hk]
|
|
231
|
+
else
|
|
232
|
+
have e : k = (k - 6) + 6 := by omega
|
|
233
|
+
rw [e, doubling_has_period_six_for_every_k, ih (k - 6) (by omega), Nat.add_mod_right]
|
|
234
|
+
|
|
235
|
+
theorem the_orbit_never_meets_the_triad_for_every_k : ∀ k : Nat, pw 2 k ≠ 0 ∧ pw 2 k ≠ 3 ∧ pw 2 k ≠ 6 := by
|
|
236
|
+
intro k
|
|
237
|
+
rw [the_doubling_orbit_is_read_from_the_exponent_mod_six]
|
|
238
|
+
have h : k % 6 < 6 := Nat.mod_lt _ (by decide)
|
|
239
|
+
generalize k % 6 = j at h ⊢
|
|
240
|
+
revert j
|
|
241
|
+
decide
|
|
242
|
+
|
|
243
|
+
theorem fibonacci_residues_mod_nine_repeat_every_twenty_four_steps :
|
|
244
|
+
∀ k : Nat, fib (k + 24) % 9 = fib k % 9 ∧ fib (k + 25) % 9 = fib (k + 1) % 9 := by
|
|
245
|
+
intro k
|
|
246
|
+
induction k with
|
|
247
|
+
| zero => decide
|
|
248
|
+
| succ k ih =>
|
|
249
|
+
refine ⟨ih.2, ?_⟩
|
|
250
|
+
show (fib (k + 24) + fib (k + 25)) % 9 = (fib k + fib (k + 1)) % 9
|
|
251
|
+
rw [Nat.add_mod, ih.1, ih.2, ← Nat.add_mod]
|
|
252
|
+
|
|
253
|
+
theorem pisano_period_mod_nine_is_twenty_four_for_every_k : ∀ k : Nat, fib9 (k + 24) = fib9 k := by
|
|
254
|
+
intro k
|
|
255
|
+
exact (fibonacci_residues_mod_nine_repeat_every_twenty_four_steps k).1
|
|
256
|
+
|
|
257
|
+
theorem the_fuelled_gcd_is_the_gcd_when_the_fuel_exceeds_the_second_argument :
|
|
258
|
+
∀ f a b : Nat, b < f → gcdF f a b = Nat.gcd a b := by
|
|
259
|
+
intro f
|
|
260
|
+
induction f with
|
|
261
|
+
| zero => intro a b h; exact absurd h (Nat.not_lt_zero b)
|
|
262
|
+
| succ f ih =>
|
|
263
|
+
intro a b h
|
|
264
|
+
cases b with
|
|
265
|
+
| zero => show a = Nat.gcd a 0; rw [Nat.gcd_zero_right]
|
|
266
|
+
| succ b =>
|
|
267
|
+
show gcdF f (b + 1) (a % (b + 1)) = Nat.gcd a (b + 1)
|
|
268
|
+
have hm : a % (b + 1) < b + 1 := Nat.mod_lt a (Nat.succ_pos b)
|
|
269
|
+
rw [ih (b + 1) (a % (b + 1)) (by omega), Nat.gcd_comm a (b + 1), Nat.gcd_rec (b + 1) a, Nat.gcd_comm]
|
|
270
|
+
|
|
271
|
+
theorem consecutive_fibonacci_numbers_are_coprime : ∀ n : Nat, Nat.gcd (fib n) (fib (n + 1)) = 1 := by
|
|
272
|
+
intro n
|
|
273
|
+
induction n with
|
|
274
|
+
| zero => show Nat.gcd 0 1 = 1; exact Nat.gcd_zero_left 1
|
|
275
|
+
| succ n ih =>
|
|
276
|
+
show Nat.gcd (fib (n + 1)) (fib n + fib (n + 1)) = 1
|
|
277
|
+
rw [Nat.gcd_rec, Nat.add_mod_right, ← Nat.gcd_rec, Nat.gcd_comm, ih]
|
|
278
|
+
|
|
279
|
+
theorem consecutive_fibonacci_are_coprime_for_every_n : ∀ n : Nat, gcd9 (fib n) (fib (n + 1)) = 1 := by
|
|
280
|
+
intro n
|
|
281
|
+
unfold gcd9
|
|
282
|
+
rw [the_fuelled_gcd_is_the_gcd_when_the_fuel_exceeds_the_second_argument _ _ _ (by omega)]
|
|
283
|
+
exact consecutive_fibonacci_numbers_are_coprime n
|
|
284
|
+
|
|
285
|
+
theorem digital_root_agrees_with_the_residue_for_every_n : ∀ n : Nat, 0 < n → (dr n = 9 ↔ m9 n = 0) := by
|
|
286
|
+
intro n hn
|
|
287
|
+
unfold dr m9
|
|
288
|
+
rw [if_neg (show ¬ ((n == 0) = true) by simp; omega)]
|
|
289
|
+
by_cases h : n % 9 = 0
|
|
290
|
+
· simp [h]
|
|
291
|
+
· rw [if_neg (show ¬ ((n % 9 == 0) = true) by simpa using h)]
|
|
292
|
+
constructor
|
|
293
|
+
· intro e; have := Nat.mod_lt n (show 0 < 9 by decide); omega
|
|
294
|
+
· intro e; exact absurd e h
|
|
295
|
+
|
|
296
|
+
theorem digital_root_is_the_digit_sum_residue_for_every_n : ∀ n : Nat, m9 (digitSum n) = m9 n := by
|
|
297
|
+
intro n
|
|
298
|
+
exact Reversal.the_digit_sum_has_the_residue_of_the_number_mod_nine_for_every_n n
|
|
299
|
+
|
|
208
300
|
end Z9Plus
|