@ceccec/millennium-solutions 9.2.4 → 9.2.6

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.
@@ -70,4 +70,79 @@ theorem reversal_is_involutive_exactly_off_the_trailing_zeros :
70
70
  def settledHere : Nat := 8
71
71
  theorem reversal_settles_its_range : settledHere = 8 := rfl
72
72
 
73
+
74
+ -- ── the capped rows above, proved for every value by induction — no bound ────────────────────────────────────
75
+ -- casting out nines, in general: a number, its digit sum and its reversal share their residue mod 9.
76
+ theorem foldl_add_start : ∀ (l : List Nat) (a : Nat), l.foldl (· + ·) a = a + l.foldl (· + ·) 0 := by
77
+ intro l
78
+ induction l with
79
+ | nil => intro a; simp
80
+ | cons x xs ih =>
81
+ intro a
82
+ simp only [List.foldl]
83
+ rw [ih (a + x), ih (0 + x)]
84
+ omega
85
+
86
+ theorem the_digits_sum_to_the_number_mod_nine_when_the_fuel_covers_them :
87
+ ∀ f n : Nat, n < 10 ^ f → (digitsF f n).foldl (· + ·) 0 % 9 = n % 9 := by
88
+ intro f
89
+ induction f with
90
+ | zero =>
91
+ intro n h
92
+ have : n = 0 := by simp at h; omega
93
+ subst this
94
+ simp [digitsF]
95
+ | succ f ih =>
96
+ intro n h
97
+ cases n with
98
+ | zero => simp [digitsF]
99
+ | succ m =>
100
+ simp only [digitsF, List.foldl]
101
+ rw [foldl_add_start]
102
+ have hlt : (m + 1) / 10 < 10 ^ f := by
103
+ rw [Nat.pow_succ] at h
104
+ omega
105
+ have := ih ((m + 1) / 10) hlt
106
+ omega
107
+
108
+ theorem a_number_is_below_ten_to_its_own_successor : ∀ n : Nat, n < 10 ^ (n + 1) := by
109
+ intro n
110
+ induction n with
111
+ | zero => decide
112
+ | succ n ih =>
113
+ rw [Nat.pow_succ]
114
+ omega
115
+
116
+ theorem the_digit_sum_has_the_residue_of_the_number_mod_nine_for_every_n :
117
+ ∀ n : Nat, digitSum n % 9 = n % 9 := by
118
+ intro n
119
+ unfold digitSum digits
120
+ split
121
+ · rename_i h
122
+ have : n = 0 := by simpa using h
123
+ subst this
124
+ rfl
125
+ · exact the_digits_sum_to_the_number_mod_nine_when_the_fuel_covers_them (n + 1) n (a_number_is_below_ten_to_its_own_successor n)
126
+
127
+ theorem folding_by_ten_keeps_the_residue_of_the_digit_sum :
128
+ ∀ (l : List Nat) (a : Nat), (l.foldl (fun a d => a * 10 + d) a) % 9 = (a + l.foldl (· + ·) 0) % 9 := by
129
+ intro l
130
+ induction l with
131
+ | nil => intro a; simp
132
+ | cons x xs ih =>
133
+ intro a
134
+ simp only [List.foldl]
135
+ rw [ih (a * 10 + x), foldl_add_start xs (0 + x)]
136
+ omega
137
+
138
+ -- digital_root_is_invariant_under_reversal checked 1 ≤ n ≤ 300; this proves it for every n.
139
+ theorem reversal_keeps_the_residue_mod_nine_for_every_n :
140
+ ∀ n : Nat, reverseNum n % 9 = n % 9 := by
141
+ intro n
142
+ have h1 : reverseNum n % 9 = digitSum n % 9 := by
143
+ unfold reverseNum digitSum
144
+ rw [folding_by_ten_keeps_the_residue_of_the_digit_sum]
145
+ simp
146
+ rw [h1, the_digit_sum_has_the_residue_of_the_number_mod_nine_for_every_n]
147
+
73
148
  end Reversal
@@ -188,4 +188,12 @@ theorem the_orbit_turns_once_per_budget :
188
188
  ((List.range 60).all (fun n => 2 ^ (n + 6) % 9 == 2 ^ n % 9)) ∧ 2 ^ 6 = sealBits / coins := by decide
189
189
 
190
190
 
191
+
192
+ -- ── the capped row above, proved for every value — no bound ───────────────────────────────────────────────────
193
+ -- the_coin_step_and_the_coins_are_inverse checked c < 20; this proves tripling and dividing by three undo each other for every c.
194
+ theorem the_coin_step_and_the_coins_are_inverse_for_every_c :
195
+ ∀ c : Nat, 3 * c / 3 = c ∧ (3 * c) % 3 = 0 := by
196
+ intro c
197
+ exact ⟨Nat.mul_div_cancel_left c (by decide), Nat.mul_mod_right 3 c⟩
198
+
191
199
  end Split
@@ -15478,5 +15478,167 @@
15478
15478
  "verdict": "UNVERIFIED",
15479
15479
  "ground": "no candidate in the current space — nothing to recompute",
15480
15480
  "receipt": "6dec28f9-502b-86ee-8f87-d09f701ed7e7"
15481
+ },
15482
+ {
15483
+ "key": "lean_demand_mantels_bound_is_n_squared_over_four_for_every_n",
15484
+ "verdict": "UNVERIFIED",
15485
+ "ground": "no candidate in the current space — nothing to recompute",
15486
+ "receipt": "b9212e56-a3ea-8d6d-be87-f946b87d6b6c"
15487
+ },
15488
+ {
15489
+ "key": "lean_demand3_the_euler_characteristic_of_a_genus_g_surface_for_every_g",
15490
+ "verdict": "UNVERIFIED",
15491
+ "ground": "no candidate in the current space — nothing to recompute",
15492
+ "receipt": "a1a899d7-b3c5-8941-b02c-55f111d49fca"
15493
+ },
15494
+ {
15495
+ "key": "lean_demand3_a_repunit_has_the_residue_of_its_length_mod_three",
15496
+ "verdict": "UNVERIFIED",
15497
+ "ground": "no candidate in the current space — nothing to recompute",
15498
+ "receipt": "732113b8-a6d4-8b14-8681-6f31d2a78e30"
15499
+ },
15500
+ {
15501
+ "key": "lean_demand3_a_repunit_is_divisible_by_three_exactly_when_its_length_is_for_every_n",
15502
+ "verdict": "UNVERIFIED",
15503
+ "ground": "no candidate in the current space — nothing to recompute",
15504
+ "receipt": "93c43bd9-4707-8199-be02-c954c8916904"
15505
+ },
15506
+ {
15507
+ "key": "lean_demand3_repunit_of_a_sum",
15508
+ "verdict": "UNVERIFIED",
15509
+ "ground": "no candidate in the current space — nothing to recompute",
15510
+ "receipt": "5558e77e-438c-84e4-9a58-2520685771a3"
15511
+ },
15512
+ {
15513
+ "key": "lean_demand3_repunits_repeat_mod_seven_every_six_digits",
15514
+ "verdict": "UNVERIFIED",
15515
+ "ground": "no candidate in the current space — nothing to recompute",
15516
+ "receipt": "a67a8eec-997b-86f2-adbe-b77355dafc70"
15517
+ },
15518
+ {
15519
+ "key": "lean_demand3_a_repunit_has_the_residue_of_its_length_mod_six_mod_seven",
15520
+ "verdict": "UNVERIFIED",
15521
+ "ground": "no candidate in the current space — nothing to recompute",
15522
+ "receipt": "ec5bf7fe-1dd8-863d-8443-8682088d254b"
15523
+ },
15524
+ {
15525
+ "key": "lean_demand3_a_repunit_is_divisible_by_seven_exactly_when_six_divides_its_length_for_every_n",
15526
+ "verdict": "UNVERIFIED",
15527
+ "ground": "no candidate in the current space — nothing to recompute",
15528
+ "receipt": "2bb98278-186d-8284-9c6e-9c9e74177679"
15529
+ },
15530
+ {
15531
+ "key": "lean_elementary_the_interior_and_exterior_angles_are_n_straight_angles_for_every_n",
15532
+ "verdict": "UNVERIFIED",
15533
+ "ground": "no candidate in the current space — nothing to recompute",
15534
+ "receipt": "d1fbd7f1-d1df-8c7f-bb56-d565780d1db2"
15535
+ },
15536
+ {
15537
+ "key": "lean_elementary_a_product_of_consecutive_numbers_is_even",
15538
+ "verdict": "UNVERIFIED",
15539
+ "ground": "no candidate in the current space — nothing to recompute",
15540
+ "receipt": "cf763033-1ed3-82d8-866e-88ea2a38b2d1"
15541
+ },
15542
+ {
15543
+ "key": "lean_elementary_eight_times_a_triangular_number_plus_one_is_an_odd_square_for_every_n",
15544
+ "verdict": "UNVERIFIED",
15545
+ "ground": "no candidate in the current space — nothing to recompute",
15546
+ "receipt": "1aa59ef6-880c-8e39-b946-1b88e426040e"
15547
+ },
15548
+ {
15549
+ "key": "lean_energy_two_parts_in_three_is_two_thirds_at_every_scale_for_every_m",
15550
+ "verdict": "UNVERIFIED",
15551
+ "ground": "no candidate in the current space — nothing to recompute",
15552
+ "receipt": "9177c3d3-8280-8d65-9df5-c27b42454279"
15553
+ },
15554
+ {
15555
+ "key": "lean_families_the_powers_of_two_sum_to_one_less_than_the_next_for_every_n",
15556
+ "verdict": "UNVERIFIED",
15557
+ "ground": "no candidate in the current space — nothing to recompute",
15558
+ "receipt": "3cab57ca-4d36-8f80-a221-21c11d25adc9"
15559
+ },
15560
+ {
15561
+ "key": "lean_families_square_of_successor",
15562
+ "verdict": "UNVERIFIED",
15563
+ "ground": "no candidate in the current space — nothing to recompute",
15564
+ "receipt": "f9826dc5-b85d-8a85-800b-f6027e83a0cf"
15565
+ },
15566
+ {
15567
+ "key": "lean_families_the_first_n_odd_numbers_sum_to_n_squared_for_every_n",
15568
+ "verdict": "UNVERIFIED",
15569
+ "ground": "no candidate in the current space — nothing to recompute",
15570
+ "receipt": "7baff487-adea-8866-9d67-71fbbb0cdee6"
15571
+ },
15572
+ {
15573
+ "key": "lean_mechanical_consecutive_squares_differ_by_the_odd_numbers",
15574
+ "verdict": "UNVERIFIED",
15575
+ "ground": "no candidate in the current space — nothing to recompute",
15576
+ "receipt": "65131201-9df7-8805-8427-c1407fcd92cf"
15577
+ },
15578
+ {
15579
+ "key": "lean_mechanical_every_multiple_of_three_four_five_is_pythagorean",
15580
+ "verdict": "UNVERIFIED",
15581
+ "ground": "no candidate in the current space — nothing to recompute",
15582
+ "receipt": "a20992d7-56ea-8048-a939-96fc2fdc451d"
15583
+ },
15584
+ {
15585
+ "key": "lean_mechanical_the_product_of_three_consecutive_numbers_is_even",
15586
+ "verdict": "UNVERIFIED",
15587
+ "ground": "no candidate in the current space — nothing to recompute",
15588
+ "receipt": "0eb7327f-0789-8918-8365-8d4188436e01"
15589
+ },
15590
+ {
15591
+ "key": "lean_mechanical_the_product_of_three_consecutive_numbers_is_a_multiple_of_three",
15592
+ "verdict": "UNVERIFIED",
15593
+ "ground": "no candidate in the current space — nothing to recompute",
15594
+ "receipt": "f3e2ee80-28d1-89e3-92c7-082265ef98dc"
15595
+ },
15596
+ {
15597
+ "key": "lean_mechanical_the_product_of_any_three_consecutive_integers_is_divisible_by_six_for_every_n",
15598
+ "verdict": "UNVERIFIED",
15599
+ "ground": "no candidate in the current space — nothing to recompute",
15600
+ "receipt": "65518577-2bc3-82a2-97f8-f6cd4f7d1b62"
15601
+ },
15602
+ {
15603
+ "key": "lean_reversal_foldl_add_start",
15604
+ "verdict": "UNVERIFIED",
15605
+ "ground": "no candidate in the current space — nothing to recompute",
15606
+ "receipt": "70a7cff5-e668-8f44-a8d0-797abfa246c8"
15607
+ },
15608
+ {
15609
+ "key": "lean_reversal_the_digits_sum_to_the_number_mod_nine_when_the_fuel_covers_them",
15610
+ "verdict": "UNVERIFIED",
15611
+ "ground": "no candidate in the current space — nothing to recompute",
15612
+ "receipt": "58d4c502-7f73-8e6c-923e-76fdf25fc81c"
15613
+ },
15614
+ {
15615
+ "key": "lean_reversal_a_number_is_below_ten_to_its_own_successor",
15616
+ "verdict": "UNVERIFIED",
15617
+ "ground": "no candidate in the current space — nothing to recompute",
15618
+ "receipt": "dc7330c0-7a4c-8d99-9874-37c4c10fd1bb"
15619
+ },
15620
+ {
15621
+ "key": "lean_reversal_the_digit_sum_has_the_residue_of_the_number_mod_nine_for_every_n",
15622
+ "verdict": "UNVERIFIED",
15623
+ "ground": "no candidate in the current space — nothing to recompute",
15624
+ "receipt": "1a8922c4-c55c-88a0-b55a-23663d22fe49"
15625
+ },
15626
+ {
15627
+ "key": "lean_reversal_folding_by_ten_keeps_the_residue_of_the_digit_sum",
15628
+ "verdict": "UNVERIFIED",
15629
+ "ground": "no candidate in the current space — nothing to recompute",
15630
+ "receipt": "c7ce0223-8884-8e3a-84a1-dded449c3cb0"
15631
+ },
15632
+ {
15633
+ "key": "lean_reversal_reversal_keeps_the_residue_mod_nine_for_every_n",
15634
+ "verdict": "UNVERIFIED",
15635
+ "ground": "no candidate in the current space — nothing to recompute",
15636
+ "receipt": "3159b043-f18c-8c28-b831-114d6dc70ce2"
15637
+ },
15638
+ {
15639
+ "key": "lean_split_the_coin_step_and_the_coins_are_inverse_for_every_c",
15640
+ "verdict": "UNVERIFIED",
15641
+ "ground": "no candidate in the current space — nothing to recompute",
15642
+ "receipt": "1c1ebe41-4e80-80ad-b352-e90a09922838"
15481
15643
  }
15482
15644
  ]