@ceccec/millennium-solutions 0.1.1 → 9.0.4
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/.zenodo.json +33 -9
- package/ACCOUNTING.md +7 -7
- package/AXIOMS.md +559 -0
- package/CHALLENGES.md +2181 -2479
- package/CITATION.cff +1 -1
- package/DEPLOY.md +2 -2
- package/DEVELOP.md +1 -1
- package/LICENSE +6 -5
- package/PRIOR-ART.md +149 -0
- package/README.md +221 -123
- package/SIGNATURE.md +2 -2
- package/TRIAL.md +69 -0
- package/WHITEPAPER.md +5 -5
- package/captain.md +2 -2
- package/compare.md +4 -4
- package/compute.md +9 -0
- package/dashboard.md +1 -1
- package/examples.md +5 -5
- package/forensic.md +67 -0
- package/guide.md +5 -5
- package/index.md +209 -139
- package/package.json +88 -9
- package/paper.md +7183 -0
- package/quantum.md +42 -0
- package/rights.md +39 -0
- package/solutions.md +7 -7
- package/speedup.md +4 -4
- package/src/0/index.ts +12 -2
- package/src/1/index.ts +1 -1
- package/src/2/frequency-scales.ts +13 -1
- package/src/2/index.ts +1 -1
- package/src/3/index.ts +1 -1
- package/src/4/index.ts +1 -1
- package/src/5/index.ts +1 -1
- package/src/6/index.ts +1 -1
- package/src/7/index.ts +1 -1
- package/src/9/funding.ts +2 -2
- package/src/api/gates.ts +117 -0
- package/src/api/index.ts +488 -0
- package/src/api/lanes.ts +81 -0
- package/src/demand/queries.json +1764 -0
- package/src/face/index.ts +100 -0
- package/src/html/index.ts +10 -0
- package/src/latex/index.ts +474 -0
- package/src/millennium/index.ts +53 -0
- package/src/proof/README.md +1 -1
- package/src/proof/address.lean +117 -0
- package/src/proof/coin.lean +148 -0
- package/src/proof/covered.json +9 -0
- package/src/proof/demand.lean +112 -0
- package/src/proof/demand2.lean +171 -0
- package/src/proof/demand3.lean +117 -0
- package/src/proof/discovered.json +10965 -1864
- package/src/proof/elementary.lean +393 -0
- package/src/proof/energy.lean +215 -0
- package/src/proof/families.lean +435 -0
- package/src/proof/fixtures/axiom-control.lean +39 -0
- package/src/proof/fnv.lean +99 -0
- package/src/proof/generated-theorems.json +207 -0
- package/src/proof/generated.lean +101 -0
- package/src/proof/imagined.lean +492 -0
- package/src/proof/index.lean +98 -18
- package/src/proof/index.ts +2 -2
- package/src/proof/involution.lean +90 -0
- package/src/proof/ledgerclaims.lean +84 -0
- package/src/proof/light.lean +135 -0
- package/src/proof/mechanical.lean +421 -0
- package/src/proof/merkaba.lean +89 -0
- package/src/proof/merkle.lean +132 -0
- package/src/proof/nim.lean +105 -0
- package/src/proof/phenomena.lean +90 -0
- package/src/proof/priorart.lean +189 -0
- package/src/proof/quantum.lean +161 -0
- package/src/proof/reach.lean +84 -0
- package/src/proof/recovered.lean +56 -0
- package/src/proof/reversal.lean +73 -0
- package/src/proof/rights.lean +157 -0
- package/src/proof/sequences.lean +105 -0
- package/src/proof/speed.lean +129 -0
- package/src/proof/split.lean +180 -0
- package/src/proof/theorems.lean +48 -1
- package/src/proof/trial-all.json +15260 -0
- package/src/proof/z9.lean +92 -0
- package/src/proof/z9plus.lean +208 -0
- package/src/proofs.lisp +3 -3
- package/src/prove/emit.ts +115 -0
- package/src/prove/index.ts +143 -0
- package/src/prove/translate.ts +638 -0
- package/src/publication/index.ts +363 -0
- package/src/quantum/field.ts +73 -0
- package/src/quantum/tree.ts +79 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"key": "powsum_zero_odd_exponents",
|
|
4
|
+
"name": "powsum0_k, quantified over its whole parameter set (9 ledger rows)",
|
|
5
|
+
"statement": "[1, 3, 5, 7, 9, 11, 13, 15, 17].all (fun k => (([1,2,4,5,7,8].map (fun u => (u ^ k) % 9)).foldl (· + ·) 0) % 9 == 0)",
|
|
6
|
+
"tactic": "decide",
|
|
7
|
+
"file": "generated.lean",
|
|
8
|
+
"principle": "The ring Z/9",
|
|
9
|
+
"skill": "z9-ring",
|
|
10
|
+
"lean": "theorem powsum_zero_odd_exponents :\n [1, 3, 5, 7, 9, 11, 13, 15, 17].all (fun k =>\n (([1,2,4,5,7,8].map (fun u => (u ^ k) % 9)).foldl (· + ·) 0) % 9 == 0) := by decide",
|
|
11
|
+
"address": "6c36a9ab-f72d-862c-8044-143fa126824a",
|
|
12
|
+
"subsumes": [
|
|
13
|
+
"powsum0_k_1",
|
|
14
|
+
"powsum0_k_3",
|
|
15
|
+
"powsum0_k_5",
|
|
16
|
+
"powsum0_k_7",
|
|
17
|
+
"powsum0_k_9",
|
|
18
|
+
"powsum0_k_11",
|
|
19
|
+
"powsum0_k_13",
|
|
20
|
+
"powsum0_k_15",
|
|
21
|
+
"powsum0_k_17"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"key": "mulperm_iff_unit_all",
|
|
26
|
+
"name": "mulperm_k, quantified over its whole parameter set (5 ledger rows)",
|
|
27
|
+
"statement": "(List.range 9).all (fun k => (((([1,2,4,5,7,8].map (fun u => (k * u) % 9)).eraseDups).length) == 6) == ([1,2,4,5,7,8].contains k))",
|
|
28
|
+
"tactic": "decide",
|
|
29
|
+
"file": "generated.lean",
|
|
30
|
+
"principle": "The ring Z/9",
|
|
31
|
+
"skill": "z9-ring",
|
|
32
|
+
"lean": "theorem mulperm_iff_unit_all :\n (List.range 9).all (fun k =>\n (((([1,2,4,5,7,8].map (fun u => (k * u) % 9)).eraseDups).length) == 6) ==\n ([1,2,4,5,7,8].contains k)) := by decide",
|
|
33
|
+
"address": "528a962b-c690-848b-bc01-18d6b0b3bd72",
|
|
34
|
+
"subsumes": [
|
|
35
|
+
"mulperm_k_2",
|
|
36
|
+
"mulperm_k_4",
|
|
37
|
+
"mulperm_k_5",
|
|
38
|
+
"mulperm_k_7",
|
|
39
|
+
"mulperm_k_8"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"key": "addgen_iff_coprime_all",
|
|
44
|
+
"name": "addgen_k, quantified over its whole parameter set (5 ledger rows)",
|
|
45
|
+
"statement": "(List.range 9).all (fun k => ((((List.range 9).map (fun i => (k * i) % 9)).eraseDups).length == 9) == ([1,2,4,5,7,8].contains k))",
|
|
46
|
+
"tactic": "decide",
|
|
47
|
+
"file": "generated.lean",
|
|
48
|
+
"principle": "The ring Z/9",
|
|
49
|
+
"skill": "z9-ring",
|
|
50
|
+
"lean": "theorem addgen_iff_coprime_all :\n (List.range 9).all (fun k =>\n ((((List.range 9).map (fun i => (k * i) % 9)).eraseDups).length == 9) ==\n ([1,2,4,5,7,8].contains k)) := by decide",
|
|
51
|
+
"address": "c70e4a08-4cfd-88c9-8014-f9d6481dcc27",
|
|
52
|
+
"subsumes": [
|
|
53
|
+
"addgen_k_2",
|
|
54
|
+
"addgen_k_4",
|
|
55
|
+
"addgen_k_5",
|
|
56
|
+
"addgen_k_7",
|
|
57
|
+
"addgen_k_8"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"key": "hasinv_iff_unit_all",
|
|
62
|
+
"name": "hasinv_d, quantified over its whole parameter set (6 ledger rows)",
|
|
63
|
+
"statement": "(List.range 9).all (fun d => ((List.range 9).any (fun e => (d * e) % 9 == 1)) == ([1,2,4,5,7,8].contains d))",
|
|
64
|
+
"tactic": "decide",
|
|
65
|
+
"file": "generated.lean",
|
|
66
|
+
"principle": "The ring Z/9",
|
|
67
|
+
"skill": "z9-ring",
|
|
68
|
+
"lean": "theorem hasinv_iff_unit_all :\n (List.range 9).all (fun d =>\n ((List.range 9).any (fun e => (d * e) % 9 == 1)) == ([1,2,4,5,7,8].contains d)) := by decide",
|
|
69
|
+
"address": "a0c21f15-ebc9-8bfe-9bb2-867ee66c944a",
|
|
70
|
+
"subsumes": [
|
|
71
|
+
"hasinv_d_1",
|
|
72
|
+
"hasinv_d_2",
|
|
73
|
+
"hasinv_d_4",
|
|
74
|
+
"hasinv_d_5",
|
|
75
|
+
"hasinv_d_7",
|
|
76
|
+
"hasinv_d_8"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"key": "demorgan_all_widths",
|
|
81
|
+
"name": "demorgan_nary_k, quantified over its whole parameter set (7 ledger rows)",
|
|
82
|
+
"statement": "(List.range' 2 7).all (fun k => (List.range (2 ^ k)).all (fun n => (!((List.range k).all (fun i => (n >>> i) % 2 == 1))) == ((List.range k).any (fun i => (n >>> i) % 2 == 0))))",
|
|
83
|
+
"tactic": "decide",
|
|
84
|
+
"file": "generated.lean",
|
|
85
|
+
"principle": "The boolean lattice",
|
|
86
|
+
"skill": "logic",
|
|
87
|
+
"lean": "theorem demorgan_all_widths :\n (List.range' 2 7).all (fun k =>\n (List.range (2 ^ k)).all (fun n =>\n (!((List.range k).all (fun i => (n >>> i) % 2 == 1))) ==\n ((List.range k).any (fun i => (n >>> i) % 2 == 0)))) := by decide",
|
|
88
|
+
"address": "ee6e7511-fdea-8b96-8612-a1b45adbfbf3",
|
|
89
|
+
"subsumes": [
|
|
90
|
+
"demorgan_nary_k_2",
|
|
91
|
+
"demorgan_nary_k_3",
|
|
92
|
+
"demorgan_nary_k_4",
|
|
93
|
+
"demorgan_nary_k_5",
|
|
94
|
+
"demorgan_nary_k_6",
|
|
95
|
+
"demorgan_nary_k_7",
|
|
96
|
+
"demorgan_nary_k_8"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"key": "power_sum_closed_forms",
|
|
101
|
+
"name": "power_sum_k, quantified over its whole parameter set (5 ledger rows)",
|
|
102
|
+
"statement": "(List.range' 1 30).all (fun n => (((List.range' 1 n).foldl (· + ·) 0) * 2 == n * (n + 1)) ∧ (((List.range' 1 n).map (fun i => i * i)).foldl (· + ·) 0) * 6 == n * (n + 1) * (2 * n + 1))",
|
|
103
|
+
"tactic": "decide",
|
|
104
|
+
"file": "generated.lean",
|
|
105
|
+
"principle": "The closed forms",
|
|
106
|
+
"skill": "sums",
|
|
107
|
+
"lean": "theorem power_sum_closed_forms :\n (List.range' 1 30).all (fun n =>\n (((List.range' 1 n).foldl (· + ·) 0) * 2 == n * (n + 1))\n ∧ (((List.range' 1 n).map (fun i => i * i)).foldl (· + ·) 0) * 6 == n * (n + 1) * (2 * n + 1)) := by decide",
|
|
108
|
+
"address": "9caaf63f-ba3f-8651-931d-6c467aed46b3",
|
|
109
|
+
"subsumes": [
|
|
110
|
+
"power_sum_k_1",
|
|
111
|
+
"power_sum_k_2",
|
|
112
|
+
"power_sum_k_3",
|
|
113
|
+
"power_sum_k_4",
|
|
114
|
+
"power_sum_k_5"
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"key": "invpow_is_fifth_power_all_units",
|
|
119
|
+
"name": "invpow_u, quantified over its whole parameter set (6 ledger rows)",
|
|
120
|
+
"statement": "[1,2,4,5,7,8].all (fun u => (u * (u ^ 5)) % 9 == 1)",
|
|
121
|
+
"tactic": "decide",
|
|
122
|
+
"file": "generated.lean",
|
|
123
|
+
"principle": "The ring Z/9",
|
|
124
|
+
"skill": "z9-ring",
|
|
125
|
+
"lean": "theorem invpow_is_fifth_power_all_units :\n [1,2,4,5,7,8].all (fun u => (u * (u ^ 5)) % 9 == 1) := by decide",
|
|
126
|
+
"address": "79438c54-f6f5-8343-9d0b-027980876a1d",
|
|
127
|
+
"subsumes": [
|
|
128
|
+
"invpow_u_1",
|
|
129
|
+
"invpow_u_2",
|
|
130
|
+
"invpow_u_4",
|
|
131
|
+
"invpow_u_5",
|
|
132
|
+
"invpow_u_7",
|
|
133
|
+
"invpow_u_8"
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"key": "cyclic_units_have_a_primitive_root",
|
|
138
|
+
"name": "domain_cyclic_m, quantified over its whole parameter set (13 ledger rows)",
|
|
139
|
+
"statement": "[2,3,5,7,11,13].all (fun p => (List.range' 1 (p - 1)).any (fun g => (((List.range' 1 (p - 1)).map (fun k => (g ^ k) % p)).eraseDups).length == p - 1))",
|
|
140
|
+
"tactic": "decide",
|
|
141
|
+
"file": "generated.lean",
|
|
142
|
+
"principle": "The primes",
|
|
143
|
+
"skill": "number-theory",
|
|
144
|
+
"lean": "theorem cyclic_units_have_a_primitive_root :\n [2,3,5,7,11,13].all (fun p =>\n (List.range' 1 (p - 1)).any (fun g =>\n (((List.range' 1 (p - 1)).map (fun k => (g ^ k) % p)).eraseDups).length == p - 1)) := by decide",
|
|
145
|
+
"address": "4b2f765f-dd14-8805-9004-333d35ad4ca8",
|
|
146
|
+
"subsumes": [
|
|
147
|
+
"domain_cyclic_m_2",
|
|
148
|
+
"domain_cyclic_m_3",
|
|
149
|
+
"domain_cyclic_m_4",
|
|
150
|
+
"domain_cyclic_m_5",
|
|
151
|
+
"domain_cyclic_m_6",
|
|
152
|
+
"domain_cyclic_m_7",
|
|
153
|
+
"domain_cyclic_m_9",
|
|
154
|
+
"domain_cyclic_m_10",
|
|
155
|
+
"domain_cyclic_m_11",
|
|
156
|
+
"domain_cyclic_m_13",
|
|
157
|
+
"domain_cyclic_m_14",
|
|
158
|
+
"domain_cyclic_m_17",
|
|
159
|
+
"domain_cyclic_m_18"
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"key": "decimal_period_is_the_order_of_ten",
|
|
164
|
+
"name": "decimal_period_of_1_over, quantified over its whole parameter set (12 ledger rows)",
|
|
165
|
+
"statement": "[3,7,11,13,17,19,23,29].all (fun p => ((List.range' 1 (p - 1)).find? (fun k => ((List.range k).foldl (fun r _ => r * 10 % p) 1) == 1)).getD 0 == ((List.range' 1 (p - 1)).find? (fun k => (10 ^ k) % p == 1)).getD 0)",
|
|
166
|
+
"tactic": "decide",
|
|
167
|
+
"file": "generated.lean",
|
|
168
|
+
"principle": "The primes",
|
|
169
|
+
"skill": "number-theory",
|
|
170
|
+
"lean": "theorem decimal_period_is_the_order_of_ten :\n [3,7,11,13,17,19,23,29].all (fun p =>\n ((List.range' 1 (p - 1)).find? (fun k =>\n ((List.range k).foldl (fun r _ => r * 10 % p) 1) == 1)).getD 0 ==\n ((List.range' 1 (p - 1)).find? (fun k => (10 ^ k) % p == 1)).getD 0) := by decide",
|
|
171
|
+
"address": "dccd7de1-54b9-862c-8c82-4cca9a7a557f",
|
|
172
|
+
"subsumes": [
|
|
173
|
+
"decimal_period_of_1_over_3",
|
|
174
|
+
"decimal_period_of_1_over_7",
|
|
175
|
+
"decimal_period_of_1_over_11",
|
|
176
|
+
"decimal_period_of_1_over_13",
|
|
177
|
+
"decimal_period_of_1_over_17",
|
|
178
|
+
"decimal_period_of_1_over_19",
|
|
179
|
+
"decimal_period_of_1_over_23",
|
|
180
|
+
"decimal_period_of_1_over_29",
|
|
181
|
+
"decimal_period_of_1_over_31",
|
|
182
|
+
"decimal_period_of_1_over_37",
|
|
183
|
+
"decimal_period_of_1_over_41",
|
|
184
|
+
"decimal_period_of_1_over_43"
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"key": "primality_agrees_with_trial_division",
|
|
189
|
+
"name": "domain_prime_m, quantified over its whole parameter set (7 ledger rows)",
|
|
190
|
+
"statement": "(List.range' 2 40).all (fun n => ((List.range' 2 (n - 2)).all (fun d => n % d != 0)) == ([2,3,5,7,11,13,17,19,23,29,31,37,41].contains n))",
|
|
191
|
+
"tactic": "decide",
|
|
192
|
+
"file": "generated.lean",
|
|
193
|
+
"principle": "The primes",
|
|
194
|
+
"skill": "number-theory",
|
|
195
|
+
"lean": "theorem primality_agrees_with_trial_division :\n (List.range' 2 40).all (fun n =>\n ((List.range' 2 (n - 2)).all (fun d => n % d != 0)) ==\n ([2,3,5,7,11,13,17,19,23,29,31,37,41].contains n)) := by decide",
|
|
196
|
+
"address": "3039fdf6-363d-815a-baf9-8373b7e197b8",
|
|
197
|
+
"subsumes": [
|
|
198
|
+
"domain_prime_m_2",
|
|
199
|
+
"domain_prime_m_3",
|
|
200
|
+
"domain_prime_m_5",
|
|
201
|
+
"domain_prime_m_7",
|
|
202
|
+
"domain_prime_m_11",
|
|
203
|
+
"domain_prime_m_13",
|
|
204
|
+
"domain_prime_m_17"
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
]
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
set_option maxRecDepth 100000
|
|
2
|
+
|
|
3
|
+
-- title: Generated at scale
|
|
4
|
+
-- wing: the machine
|
|
5
|
+
-- prior_art: named
|
|
6
|
+
-- prior_art_domain: elementary number theory — the unit group of ℤ/9 and the doubling orbit
|
|
7
|
+
-- prior_art_note: the structure underneath is standard and is credited. The doubling orbit
|
|
8
|
+
-- 1 → 2 → 4 → 8 → 7 → 5 → 1 modulo 9 is the cyclic group generated by 2 in U(9), of order 6 because that
|
|
9
|
+
-- is the multiplicative order of 2 mod 9; the units are {1,2,4,5,7,8} and the non-units {0,3,6}. Textbook
|
|
10
|
+
-- abstract algebra, and treated directly in the literature on doubling maps modulo odd integers.
|
|
11
|
+
-- Bounded, so the credit stops where the earlier work does: what is NOT prior art is the generator that enumerates propositions over this ring and
|
|
12
|
+
-- discards the ones true of every sibling; that machinery is this deposit's own.
|
|
13
|
+
-- Verification by exhaustion in Lean is this deposit's contribution, and verification is not discovery.
|
|
14
|
+
-- prior_art_search: literature search performed 2026-09-05, terms "doubling sequence modulo 9 orbit
|
|
15
|
+
-- 1 2 4 8 7 5 cyclic group generator digital root"; prior art found and credited.
|
|
16
|
+
-- prior_art_pool: bounded
|
|
17
|
+
-- quantified ring arithmetic over Z/9; the underlying facts are classical and searchable.
|
|
18
|
+
-- BOUNDED means a search is well posed and simply has not been run — the row is unclassified because
|
|
19
|
+
-- nobody looked. UNBOUNDED means the subject is this artifact, so there is no pool to search and the
|
|
20
|
+
-- row will stay unclassified however much work is done. They look identical in a count and need
|
|
21
|
+
-- opposite responses, which is the distinction uuidna-49 asked for and nobody had drawn.
|
|
22
|
+
-- prior_art_own: this deposit's own generator over its own ring
|
|
23
|
+
-- Generated by scripts/lean-gen.ts — do not edit by hand; re-run the generator.
|
|
24
|
+
-- Each theorem below quantifies over a whole ledger family. Every one is compiled, audited for axioms, and
|
|
25
|
+
-- checked to compute what the ledger's own tests compute at every parameter of its family.
|
|
26
|
+
|
|
27
|
+
namespace Generated
|
|
28
|
+
|
|
29
|
+
-- powsum0_k: 9 ledger rows (params 1, 3, 5, 7, 9, 11, 13, 15, 17) → one quantified theorem
|
|
30
|
+
theorem powsum_zero_odd_exponents :
|
|
31
|
+
[1, 3, 5, 7, 9, 11, 13, 15, 17].all (fun k =>
|
|
32
|
+
(([1,2,4,5,7,8].map (fun u => (u ^ k) % 9)).foldl (· + ·) 0) % 9 == 0) := by decide
|
|
33
|
+
|
|
34
|
+
-- the boundary: where the property genuinely fails
|
|
35
|
+
theorem powsum_nonzero_at_even_exponents :
|
|
36
|
+
¬ ([2, 4, 6].all (fun k =>
|
|
37
|
+
(([1,2,4,5,7,8].map (fun u => (u ^ k) % 9)).foldl (· + ·) 0) % 9 == 0)) := by decide
|
|
38
|
+
|
|
39
|
+
-- mulperm_k: 5 ledger rows (params 2, 4, 5, 7, 8) → one quantified theorem
|
|
40
|
+
theorem mulperm_iff_unit_all :
|
|
41
|
+
(List.range 9).all (fun k =>
|
|
42
|
+
(((([1,2,4,5,7,8].map (fun u => (k * u) % 9)).eraseDups).length) == 6) ==
|
|
43
|
+
([1,2,4,5,7,8].contains k)) := by decide
|
|
44
|
+
|
|
45
|
+
-- the boundary: where the property genuinely fails
|
|
46
|
+
theorem mulperm_fails_at_the_triad :
|
|
47
|
+
¬ ([0,3,6].any (fun k =>
|
|
48
|
+
((([1,2,4,5,7,8].map (fun u => (k * u) % 9)).eraseDups).length) == 6)) := by decide
|
|
49
|
+
|
|
50
|
+
-- addgen_k: 5 ledger rows (params 2, 4, 5, 7, 8) → one quantified theorem
|
|
51
|
+
theorem addgen_iff_coprime_all :
|
|
52
|
+
(List.range 9).all (fun k =>
|
|
53
|
+
((((List.range 9).map (fun i => (k * i) % 9)).eraseDups).length == 9) ==
|
|
54
|
+
([1,2,4,5,7,8].contains k)) := by decide
|
|
55
|
+
|
|
56
|
+
-- hasinv_d: 6 ledger rows (params 1, 2, 4, 5, 7, 8) → one quantified theorem
|
|
57
|
+
theorem hasinv_iff_unit_all :
|
|
58
|
+
(List.range 9).all (fun d =>
|
|
59
|
+
((List.range 9).any (fun e => (d * e) % 9 == 1)) == ([1,2,4,5,7,8].contains d)) := by decide
|
|
60
|
+
|
|
61
|
+
-- demorgan_nary_k: 7 ledger rows (params 2, 3, 4, 5, 6, 7, 8) → one quantified theorem
|
|
62
|
+
theorem demorgan_all_widths :
|
|
63
|
+
(List.range' 2 7).all (fun k =>
|
|
64
|
+
(List.range (2 ^ k)).all (fun n =>
|
|
65
|
+
(!((List.range k).all (fun i => (n >>> i) % 2 == 1))) ==
|
|
66
|
+
((List.range k).any (fun i => (n >>> i) % 2 == 0)))) := by decide
|
|
67
|
+
|
|
68
|
+
-- power_sum_k: 5 ledger rows (params 1, 2, 3, 4, 5) → one quantified theorem
|
|
69
|
+
theorem power_sum_closed_forms :
|
|
70
|
+
(List.range' 1 30).all (fun n =>
|
|
71
|
+
(((List.range' 1 n).foldl (· + ·) 0) * 2 == n * (n + 1))
|
|
72
|
+
∧ (((List.range' 1 n).map (fun i => i * i)).foldl (· + ·) 0) * 6 == n * (n + 1) * (2 * n + 1)) := by decide
|
|
73
|
+
|
|
74
|
+
-- invpow_u: 6 ledger rows (params 1, 2, 4, 5, 7, 8) → one quantified theorem
|
|
75
|
+
theorem invpow_is_fifth_power_all_units :
|
|
76
|
+
[1,2,4,5,7,8].all (fun u => (u * (u ^ 5)) % 9 == 1) := by decide
|
|
77
|
+
|
|
78
|
+
-- the boundary: where the property genuinely fails
|
|
79
|
+
theorem invpow_fails_off_the_units :
|
|
80
|
+
¬ ([3, 6].any (fun t => (List.range 9).any (fun e => (t * e) % 9 == 1))) := by decide
|
|
81
|
+
|
|
82
|
+
-- domain_cyclic_m: 13 ledger rows (params 2, 3, 4, 5, 6, 7, 9, 10, 11, 13, 14, 17, 18) → one quantified theorem
|
|
83
|
+
theorem cyclic_units_have_a_primitive_root :
|
|
84
|
+
[2,3,5,7,11,13].all (fun p =>
|
|
85
|
+
(List.range' 1 (p - 1)).any (fun g =>
|
|
86
|
+
(((List.range' 1 (p - 1)).map (fun k => (g ^ k) % p)).eraseDups).length == p - 1)) := by decide
|
|
87
|
+
|
|
88
|
+
-- decimal_period_of_1_over: 12 ledger rows (params 3, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43) → one quantified theorem
|
|
89
|
+
theorem decimal_period_is_the_order_of_ten :
|
|
90
|
+
[3,7,11,13,17,19,23,29].all (fun p =>
|
|
91
|
+
((List.range' 1 (p - 1)).find? (fun k =>
|
|
92
|
+
((List.range k).foldl (fun r _ => r * 10 % p) 1) == 1)).getD 0 ==
|
|
93
|
+
((List.range' 1 (p - 1)).find? (fun k => (10 ^ k) % p == 1)).getD 0) := by decide
|
|
94
|
+
|
|
95
|
+
-- domain_prime_m: 7 ledger rows (params 2, 3, 5, 7, 11, 13, 17) → one quantified theorem
|
|
96
|
+
theorem primality_agrees_with_trial_division :
|
|
97
|
+
(List.range' 2 40).all (fun n =>
|
|
98
|
+
((List.range' 2 (n - 2)).all (fun d => n % d != 0)) ==
|
|
99
|
+
([2,3,5,7,11,13,17,19,23,29,31,37,41].contains n)) := by decide
|
|
100
|
+
|
|
101
|
+
end Generated
|