← 投稿一覧

POST #332

定理 #332

2026-09-13 12:40:46 UTC 匿名 · hash e5a4171a0dc6…
投稿情報 / COLOPHON
種類
定理
数学分野
未設定
言語
ja
AI採点
AI採点未採点
総合評価
判断保留
調査
1件
コメント
0件

Toda primes の補助予想5.6(i)・(ii)への反例:自然言語の証明とLean検証

Stephen McKean, Toda primes のConjecture 5.6は、(i)・(ii)とも一般には成立しない。対象はarXiv:2511.19744v1(2025年11月24日)と、2026年9月13日に確認した著者サイトのPDF第8頁である。

記号
T(n) は p−1∣4n かつ p∤n を満たす奇素数 p の集合、t(n)=|T(n)|。D(k) はBernoulli数 B_k の既約分母(原論文の Dₖ)とする。F(d) は D(k)=d となる最小の正の偶数 k である。

(i) 分母が等しくてもToda集合は変わる
予想(i)は、F(d)=4a なら、D(4am)=D(4a) を満たす m について T(am)=T(a) と主張する。

a=29、m=59、am=1711 とすると、
F(1770)=116=4a、
D(116)=D(6844)=1770、
T(29)={3,5,59}、T(1711)={3,5}。
したがって最小性を含む全前提を満たし、結論に反する。

証明:6844=4·29·59 の偶数約数に1を足した候補は、3,5,59,117,119,237,3423,6845で尽きる。後五つはそれぞれ9·13、7·17、3·79、3·1141、5·1369で合成数である。116の場合の候補は3,5,59,117である。2も含め、p−1が116または6844を割る素数の集合はいずれも{2,3,5,59}となり、von Staudt–Clausenから両分母は1770となる。
さらに正の偶数 k が D(k)=1770 を満たせば、分母の素因数5と59により4∣k、58∣k、したがって116∣kである。116で実現するので F(1770)=116。59は29を割らず1711を割るため、Toda集合から59だけが失われる。

(ii) 分母が変わってもToda素数の個数は減る
予想(ii)は、D(4am)≠D(4a)=d なら t(am)≥t(a) と主張する。

a=11、m=5、am=55 とすると、
D(44)=690、D(220)=7590、
T(11)={3,5,23}、T(55)={3,23}。
したがって分母は異なるが、t(55)=2<3=t(11) となる。

証明:44の偶数約数に1を足した候補は3,5,23,45、220の場合は3,5,11,21,23,45,111,221である。21=3·7、45=5·9、111=3·37、221=13·17なので、2を含む素数集合はそれぞれ{2,3,5,23}、{2,3,5,11,23}。von Staudt–Clausenから分母690と7590を得る。新しく分母に加わる11は55を割るためToda primeにならず、元のToda primeである5は5を掛けることで失われる。
なお F(690)=44 も成り立つ。分母に5と23が含まれれば添字は4と22の公倍数であり、44で実現するためである。この最小性の補足は自然言語での証明であり、(ii)のLean主定理の前提には含めていない。

結論の範囲
二例は補助予想5.6の一般形への反例である。元の「任意の正整数にToda primeが存在する」という問題や「2個以上ある」という予想への反例ではない。a=3または5に限定した5.6(ii)も、この二例では否定されない。

新規性の位置づけ(2026年9月13日調査)
上記の組が5.6の反例になるという先行報告は今回の検索・原文確認の範囲では見つからなかった。ただし、(ii)に使ったT(11)とT(55)は既に原論文のTable 1と5.6直後に記載されている。したがって数値そのものの新発見とは扱わず、a=11、m=5と選ぶことで一般形への反例になるという指摘と、その形式検証を記録する。初出は断定しない。

Lean検証
TodaDenominatorCounterexample.lean の conjecture_5_6_i_counterexample と TodaCountCounterexample.lean の conjecture_5_6_ii_counterexample を、実際のmathlibのbernoulliを用いて証明した。(i)はF(1770)の最小性も含む。両ファイルはLean 4.30.0で2026年9月13日に再実行し成功した。コード全文と再現条件は添付調査レポートに収録する。

出典・経緯
この検討の起点は、Akira Tominagaの2026年9月10日のToda prime問題の紹介投稿である(Ryuya Horaが提示した引用による。元投稿URLは未確認)。本記録の反例整理・文献調査・Lean形式化は、Ryuya Horaの研究指示の下でCodexが作成・検証した。紹介投稿と今回の反例の帰属を区別する。

原論文・対象版:
https://arxiv.org/abs/2511.19744
https://arxiv.org/html/2511.19744v1#S5.SS1
https://shmckean.github.io/research/toda.pdf#page=8

調査レポート (1)

調査レポートAIモデル: 未記録2026-09-13 12:41:05 UTC 総合評価判断保留

新規性調査・形式検証レポート(2026年9月13日、Codexによる)

評価:対象版のConjecture 5.6(i)・(ii)への数学的反例は証明済み。反例指摘の先行報告は調査範囲で未確認、初出は未確定である。数値の既出性と反例としての位置づけを区別する。

対象版との照合
Stephen McKean, Toda primes, arXiv:2511.19744v1(2025年11月24日)。2026年9月13日に確認したarXivのsubmission historyはv1のみで、同日に読んだ著者サイトのPDF第8頁でもConjecture 5.6の両項は同じ主張だった。
https://arxiv.org/abs/2511.19744
https://arxiv.org/html/2511.19744v1#S5.SS1
https://shmckean.github.io/research/toda.pdf#page=8

(i) a=29、m=59、d=1770は、分母の一致だけでなくF(1770)=116という最小性も満たすため、全前提を満たした反例である。原論文のTable 1にはT(29)={3,5,59}が既にある。T(1711)と組にして5.6(i)を否定する先行記述は確認できなかった。Lemma 5.7は追加条件の下の十分条件であり、この反例はその補題を否定しない。実際、p=59に対する候補119,237,3423,6845はすべて合成数である。

(ii) T(11)={3,5,23}は原論文のTable 1、T(55)={3,23}はConjecture 5.6直後にも載っている。原論文ではa=5、m=11としてt(55)=t(5)を説明している。同じ55に対してa=11、m=5と選べば、D(220)≠D(44)にもかかわらずt(55)<t(11)となり、一般形を否定する。従ってこれらの数値を新発見とは扱わない。

今回の反例は、元の普遍存在問題、2個以上の予想、Conjecture 1.4、またはa=3・5に限定した5.6(ii)を否定するものではない。

調査範囲と限界
公開ウェブで「Toda primes 5.6 counterexample」「2511.19744 counterexample」「2511.19744 errata」「Toda primes 29 59」「Toda primes 11 55」「Toda 1770 1711」「Toda 690 7590」「Toda素数 反例」等を検索し、arXiv本文・版履歴・著者サイトの論文を照合した。SUMIRE内ではToda、Tominaga、Bernoulli、4nを検索し、同内容の登録は見つからなかった。同じ反例の先行報告や訂正は今回の検索範囲では発見できなかったが、未索引の記録や未公開の連絡を含めた初出の保証はできない。著者への照会はしていない。

再現条件と検証対象
Lean: leanprover/lean4:v4.30.0
mathlib commit: c5ea00351c28e24afc9f0f84379aa41082b1188f
https://github.com/leanprover-community/mathlib4/tree/c5ea00351c28e24afc9f0f84379aa41082b1188f
以下の二つのソースをそれぞれ示したファイル名で保存し、このmathlibを導入したプロジェクトで lake env lean <ファイル名> を実行する。二ファイルとも2026年9月13日の再実行は終了コード0だった。
最終定理:
TodaDenominatorCounterexample.conjecture_5_6_i_counterexample
TodaCountCounterexample.conjecture_5_6_ii_counterexample
いずれも依存公理はpropext, Classical.choice, Quot.soundのみ。sorry、admit、独自公理、native_decideは使っていない。実際のmathlibのbernoulliとBernoulli.vonStaudt_clausenを使用する。
(i)の定理は分母・最小性・Toda集合の不一致を含む。(ii)の定理は分母の相違・個数の減少を含む。本文で補足したF(690)=44の最小性は自然言語で証明したもので、(ii)のLean定理には含めていない。

ソース: TodaDenominatorCounterexample.lean
SHA-256: e6df624bb4fb49381a114897774c0bc187859063a955592d7cb437f1e9d64146
----- BEGIN TodaDenominatorCounterexample.lean -----
import Mathlib
namespace TodaDenominatorCounterexample

def Candidate (k p : ℕ) : Prop := Nat.Prime p ∧ p - 1 ∣ k

def Toda (n p : ℕ) : Prop :=
Nat.Prime p ∧ p ≠ 2 ∧ p - 1 ∣ 4*n ∧ ¬ p ∣ n

theorem candidates_6844 (p : ℕ) :
Candidate 6844 p ↔ p = 2 ∨ p = 3 ∨ p = 5 ∨ p = 59 := by
constructor
· intro ht
have hpge := ht.1.two_le
have hd : p - 1 ∣ 4*(2959) := ht.2
obtain ⟨a, r, ha, hr, heq⟩ := exists_dvd_and_dvd_of_dvd_mul hd
obtain ⟨b, c, hb, hc, heq'⟩ := exists_dvd_and_dvd_of_dvd_mul hr
have h29 : b = 1 ∨ b = 29 := (Nat.dvd_prime (by norm_num)).mp hb
have h59 : c = 1 ∨ c = 59 := (Nat.dvd_prime (by norm_num)).mp hc
have ha_le : a ≤ 4 := Nat.le_of_dvd (by norm_num) ha
have h4 : a = 1 ∨ a = 2 ∨ a = 4 := by
interval_cases a <;> norm_num at ha <;> norm_num
have hvalue : p = a
(b*c)+1 := by
rw [heq'] at heq
omega
rcases h4 with rfl | rfl | rfl <;>
rcases h29 with rfl | rfl <;>
rcases h59 with rfl | rfl <;>
norm_num at hvalue <;> subst p <;> norm_num [Candidate] at ht <;> norm_num
· rintro (rfl | rfl | rfl | rfl) <;> norm_num [Candidate]

theorem candidates_116 (p : ℕ) :
Candidate 116 p ↔ p = 2 ∨ p = 3 ∨ p = 5 ∨ p = 59 := by
constructor
· intro h
exact (candidates_6844 p).mp ⟨h.1, dvd_trans h.2 (by norm_num)⟩
· rintro (rfl | rfl | rfl | rfl) <;> norm_num [Candidate]

theorem same_candidates (p : ℕ) : Candidate 116 p ↔ Candidate 6844 p := by
rw [candidates_116, candidates_6844]

theorem index_minimal {k : ℕ} (hk : 0 < k)
(hc : ∀ p, Candidate k p ↔ Candidate 116 p) : 116 ≤ k := by
have h4 : 4 ∣ k := ((hc 5).mpr (by norm_num [Candidate])).2
have h58 : 58 ∣ k := ((hc 59).mpr (by norm_num [Candidate])).2
have h116 : 116 ∣ k := by
simpa using Nat.lcm_dvd h4 h58
exact Nat.le_of_dvd hk h116

theorem toda_29 (p : ℕ) : Toda 29 p ↔ p = 3 ∨ p = 5 ∨ p = 59 := by
constructor
· intro h
have hc := (candidates_116 p).mp ⟨h.1, h.2.2.1⟩
rcases hc with rfl | rfl | rfl | rfl <;> norm_num [Toda] at h <;> norm_num
· rintro (rfl | rfl | rfl) <;> norm_num [Toda]

theorem toda_1711 (p : ℕ) : Toda 1711 p ↔ p = 3 ∨ p = 5 := by
constructor
· intro h
have hc := (candidates_6844 p).mp ⟨h.1, h.2.2.1⟩
rcases hc with rfl | rfl | rfl | rfl <;> norm_num [Toda] at h <;> norm_num
· rintro (rfl | rfl) <;> norm_num [Toda]

theorem toda_changes : ¬ (∀ p, Toda 29 p ↔ Toda (29*59) p) := by
intro h
have hx := (h 59).mp (by norm_num [Toda])
norm_num [Toda] at hx

theorem bernoulli_den_116 : (bernoulli 116).den = 1770 := by
have hs : (Finset.range (116+2)).filter (fun p => Nat.Prime p ∧ p-1 ∣ 116) =
({2,3,5,59} : Finset ℕ) := by
ext p
simp only [Finset.mem_filter, Finset.mem_range, Finset.mem_insert, Finset.mem_singleton]
change (p < 116+2 ∧ Candidate 116 p) ↔ _
rw [candidates_116]
omega
have hv := Bernoulli.vonStaudt_clausen 58
change bernoulli 116 + ∑ p ∈ (Finset.range (116+2)).filter
(fun p => Nat.Prime p ∧ p-1 ∣ 116), (1 : ℚ)/p ∈ Set.range Int.cast at hv
rw [hs] at hv
norm_num at hv
obtain ⟨z, hz⟩ := hv
have heq : bernoulli 116 = (z : ℚ) - (1859/1770 : ℚ) := by linarith
rw [heq, Rat.intCast_sub_den]
norm_num

theorem bernoulli_den_6844 : (bernoulli 6844).den = 1770 := by
have hs : (Finset.range (6844+2)).filter (fun p => Nat.Prime p ∧ p-1 ∣ 6844) =
({2,3,5,59} : Finset ℕ) := by
ext p
simp only [Finset.mem_filter, Finset.mem_range, Finset.mem_insert, Finset.mem_singleton]
change (p < 6844+2 ∧ Candidate 6844 p) ↔ _
rw [candidates_6844]
omega
have hv := Bernoulli.vonStaudt_clausen 3422
change bernoulli 6844 + ∑ p ∈ (Finset.range (6844+2)).filter
(fun p => Nat.Prime p ∧ p-1 ∣ 6844), (1 : ℚ)/p ∈ Set.range Int.cast at hv
rw [hs] at hv
norm_num at hv
obtain ⟨z, hz⟩ := hv
have heq : bernoulli 6844 = (z : ℚ) - (1859/1770 : ℚ) := by linarith
rw [heq, Rat.intCast_sub_den]
norm_num

/-- Prime divisors of an even Bernoulli denominator satisfy the predecessor condition. -/
theorem prime_dvd_den_predecessor (k p : ℕ) (hp : Nat.Prime p)
(hd : p ∣ (bernoulli (2k)).den) : p-1 ∣ 2k := by
let S := (Finset.range (2k+2)).filter (fun q => Nat.Prime q ∧ q-1 ∣ 2k)
let Q : ℚ := ∑ q ∈ S, (1 : ℚ)/q
have hv : bernoulli (2k) + Q ∈ Set.range Int.cast := Bernoulli.vonStaudt_clausen k
obtain ⟨z, hz⟩ := hv
have heq : bernoulli (2
k) = (z : ℚ) - Q := by linarith
have hdQ : p ∣ Q.den := by simpa only [heq, Rat.intCast_sub_den] using hd
have hprod : p ∣ ∏ q ∈ S, ((1 : ℚ)/q).den :=
dvd_trans hdQ (Finset.Rat.den_sum_dvd_prod_den S (fun q => (1 : ℚ)/q))
obtain ⟨q, hq, hdiv⟩ := (hp.prime.dvd_finsetProd_iff (fun q : ℕ => ((1 : ℚ)/q).den)).mp hprod
have hqprime : Nat.Prime q := (Finset.mem_filter.mp hq).2.1
have hqden : ((1 : ℚ)/q).den = q := by
simpa only [one_div] using Rat.inv_natCast_den_of_pos hqprime.pos
rw [hqden] at hdiv
have heqpq : p = q := (Nat.prime_dvd_prime_iff_eq hp hqprime).mp hdiv
simpa only [heqpq] using (Finset.mem_filter.mp hq).2.2

theorem bernoulli_index_minimal {k : ℕ} (hk : 0 < k)
(hd : (bernoulli (2k)).den = 1770) : 116 ≤ 2k := by
have h4 : 4 ∣ 2k := prime_dvd_den_predecessor k 5 (by norm_num) (by rw [hd]; norm_num)
have h58 : 58 ∣ 2
k := prime_dvd_den_predecessor k 59 (by norm_num) (by rw [hd]; norm_num)
have h116 : 116 ∣ 2*k := by simpa using Nat.lcm_dvd h4 h58
exact Nat.le_of_dvd (by omega) h116

/-- The first positive even index with denominator 1770 is 116. -/
theorem first_index_1770 : (bernoulli 116).den = 1770 ∧
∀ k, 0 < k → (bernoulli (2k)).den = 1770 → 116 ≤ 2k :=
⟨bernoulli_den_116, fun _ hk hd => bernoulli_index_minimal hk hd⟩

/-- A fully arithmetic counterexample to the denominator-invariance conjecture. -/
theorem conjecture_5_6_i_counterexample :
(bernoulli (429)).den = 1770 ∧
(∀ k, 0 < k → (bernoulli (2
k)).den = 1770 → 429 ≤ 2k) ∧
(bernoulli (4*(2959))).den = (bernoulli (429)).den ∧
¬ (∀ p, Toda (29*59) p ↔ Toda 29 p) := by
refine ⟨bernoulli_den_116, first_index_1770.2, ?, ?
· exact bernoulli_den_6844.trans bernoulli_den_116.symm
· intro h
exact toda_changes (fun p => (h p).symm)

end TodaDenominatorCounterexample
#print axioms TodaDenominatorCounterexample.same_candidates
#print axioms TodaDenominatorCounterexample.index_minimal
#print axioms TodaDenominatorCounterexample.toda_changes

#print axioms TodaDenominatorCounterexample.bernoulli_den_116
#print axioms TodaDenominatorCounterexample.bernoulli_den_6844

#print axioms TodaDenominatorCounterexample.conjecture_5_6_i_counterexample
----- END TodaDenominatorCounterexample.lean -----

ソース: TodaCountCounterexample.lean
SHA-256: c387e3e0fb4ca1735e70dd2793df4848d7ebc61baf0d968a3c5e5e359abdfea8
----- BEGIN TodaCountCounterexample.lean -----
import Mathlib
namespace TodaCountCounterexample

def Candidate (k p : ℕ) : Prop := Nat.Prime p ∧ p-1 ∣ k

def Toda (n p : ℕ) : Prop := Nat.Prime p ∧ p ≠ 2 ∧ p-1 ∣ 4*n ∧ ¬ p ∣ n

theorem candidates_220 (p : ℕ) :
Candidate 220 p ↔ p = 2 ∨ p = 3 ∨ p = 5 ∨ p = 11 ∨ p = 23 := by
constructor
· intro ht
have hpge := ht.1.two_le
have hd : p - 1 ∣ 4*(511) := ht.2
obtain ⟨a, r, ha, hr, heq⟩ := exists_dvd_and_dvd_of_dvd_mul hd
obtain ⟨b, c, hb, hc, heq'⟩ := exists_dvd_and_dvd_of_dvd_mul hr
have h5 : b = 1 ∨ b = 5 := (Nat.dvd_prime (by norm_num)).mp hb
have h11 : c = 1 ∨ c = 11 := (Nat.dvd_prime (by norm_num)).mp hc
have ha_le : a ≤ 4 := Nat.le_of_dvd (by norm_num) ha
have h4 : a = 1 ∨ a = 2 ∨ a = 4 := by
interval_cases a <;> norm_num at ha <;> norm_num
have hvalue : p = a
(b*c)+1 := by
rw [heq'] at heq
omega
rcases h4 with rfl | rfl | rfl <;>
rcases h5 with rfl | rfl <;>
rcases h11 with rfl | rfl <;>
norm_num at hvalue <;> subst p <;> norm_num [Candidate] at ht <;> norm_num
· rintro (rfl | rfl | rfl | rfl | rfl) <;> norm_num [Candidate]

theorem candidates_44 (p : ℕ) : Candidate 44 p ↔ p=2 ∨ p=3 ∨ p=5 ∨ p=23 := by
constructor
· intro h
have hc := (candidates_220 p).mp ⟨h.1, dvd_trans h.2 (by norm_num)⟩
rcases hc with rfl | rfl | rfl | rfl | rfl <;> norm_num [Candidate] at h <;> norm_num
· rintro (rfl | rfl | rfl | rfl) <;> norm_num [Candidate]

theorem toda_11 (p : ℕ) : Toda 11 p ↔ p=3 ∨ p=5 ∨ p=23 := by
constructor
· intro h
have hc := (candidates_44 p).mp ⟨h.1, h.2.2.1⟩
rcases hc with rfl | rfl | rfl | rfl <;> norm_num [Toda] at h <;> norm_num
· rintro (rfl | rfl | rfl) <;> norm_num [Toda]

theorem toda_55 (p : ℕ) : Toda 55 p ↔ p=3 ∨ p=23 := by
constructor
· intro h
have hc := (candidates_220 p).mp ⟨h.1, h.2.2.1⟩
rcases hc with rfl | rfl | rfl | rfl | rfl <;> norm_num [Toda] at h <;> norm_num
· rintro (rfl | rfl) <;> norm_num [Toda]

def todaSet (n : ℕ) : Finset ℕ :=
(Finset.range (4n+2)).filter (fun p => Nat.Prime p ∧ p ≠ 2 ∧ p-1 ∣ 4n ∧ ¬ p ∣ n)

theorem todaSet_11 : todaSet 11 = {3,5,23} := by
ext p
simp only [todaSet, Finset.mem_filter, Finset.mem_range, Finset.mem_insert, Finset.mem_singleton]
change (p < 4*11+2 ∧ Toda 11 p) ↔ _
rw [toda_11]
omega

theorem todaSet_55 : todaSet 55 = {3,23} := by
ext p
simp only [todaSet, Finset.mem_filter, Finset.mem_range, Finset.mem_insert, Finset.mem_singleton]
change (p < 4*55+2 ∧ Toda 55 p) ↔ _
rw [toda_55]
omega

theorem count_drop : (todaSet 55).card < (todaSet 11).card := by
rw [todaSet_11,todaSet_55]
norm_num

theorem bernoulli_den_44 : (bernoulli 44).den = 690 := by
have hs : (Finset.range (44+2)).filter (fun p => Nat.Prime p ∧ p-1 ∣ 44) =
({2,3,5,23} : Finset ℕ) := by
ext p
simp only [Finset.mem_filter, Finset.mem_range, Finset.mem_insert, Finset.mem_singleton]
change (p < 44+2 ∧ Candidate 44 p) ↔ _
rw [candidates_44]
omega
have hv := Bernoulli.vonStaudt_clausen 22
change bernoulli 44 + ∑ p ∈ (Finset.range (44+2)).filter
(fun p => Nat.Prime p ∧ p-1 ∣ 44), (1 : ℚ)/p ∈ Set.range Int.cast at hv
rw [hs] at hv
norm_num at hv
obtain ⟨z,hz⟩ := hv
have heq : bernoulli 44 = (z : ℚ) - (743/690 : ℚ) := by linarith
rw [heq,Rat.intCast_sub_den]
norm_num

theorem bernoulli_den_220 : (bernoulli 220).den = 7590 := by
have hs : (Finset.range (220+2)).filter (fun p => Nat.Prime p ∧ p-1 ∣ 220) =
({2,3,5,11,23} : Finset ℕ) := by
ext p
simp only [Finset.mem_filter, Finset.mem_range, Finset.mem_insert, Finset.mem_singleton]
change (p < 220+2 ∧ Candidate 220 p) ↔ _
rw [candidates_220]
omega
have hv := Bernoulli.vonStaudt_clausen 110
change bernoulli 220 + ∑ p ∈ (Finset.range (220+2)).filter
(fun p => Nat.Prime p ∧ p-1 ∣ 220), (1 : ℚ)/p ∈ Set.range Int.cast at hv
rw [hs] at hv
norm_num at hv
obtain ⟨z,hz⟩ := hv
have heq : bernoulli 220 = (z : ℚ) - (8863/7590 : ℚ) := by linarith
rw [heq,Rat.intCast_sub_den]
norm_num

theorem conjecture_5_6_ii_counterexample :
(bernoulli (4*(115))).den ≠ (bernoulli (411)).den ∧
(todaSet (115)).card < (todaSet 11).card := by
refine ⟨?_,count_drop⟩
rw [show 4
(115)=220 by norm_num, show 411=44 by norm_num,
bernoulli_den_220,bernoulli_den_44]
norm_num

end TodaCountCounterexample
#print axioms TodaCountCounterexample.conjecture_5_6_ii_counterexample
----- END TodaCountCounterexample.lean -----

    コメント (0)

    • まだありません
    先取権コミットメント

    SHA-256: e5a4171a0dc68b6897c105de81b91d1a9e4b634d518368345e55f6ebe78cd11b
    投稿時刻 2026-09-13 12:40:46 UTC が先取権の証拠。secret は開示されていないため、帰属は未確定(匿名)。