← Phase 1 / 02 · 論文與官方程式審計
結論先講在前面:目前 GitHub 實作不是單純照抄論文 pseudocode,而是加入了數個重要的證書強度修正,核心是一道「防過度宣稱 $\operatorname{BSD}(E,2)$」的閘門。關鍵區分是 2-descent 直接控制的是 $\dim_{\mathbb F_2}\Sha(E)[2]$,不是 $\operatorname{ord}_2\#\Sha(E)$——即使 $\Sha[2]$ 維度算出來是 2,仍可能有 $\Sha[2^\infty]\cong(\mathbb Z/4\mathbb Z)^2$ 使 $\operatorname{ord}_2\#\Sha=4$,所以官方程式的 check_BSD_at_2 只有在 $\operatorname{ord}_2\#\Sha_{\mathrm{an}}=0$ 且 descent 嚴格得到 $\Sha[2]=0$ 兩者同時成立時才接受——這與論文 Remark 2.19 對正 analytic 2-adic valuation 需要更高 2-power descent 的警告一致。同樣的紀律也套用在 $E'$ 的條件上:程式會讀 $\Sha_{\mathrm{an}}(E')$,但只當作 descent gate 的輸入,不直接冒充實際群階。文件也記錄了工程層的重要細節:descent backend 依序嘗試 PARI、mwrank、Sage native,mwrank 因可能卡住而被放進有 wall-clock timeout 的獨立行程;$\mathcal S\ne\varnothing$ 的判準改用論文 Proposition 2.16 的 deterministic filter,不再只用 bounded prime search 當主證書;skip_filter_S、skip_BSD_at_2_check 這類 testing-only flags 一旦啟用,輸出就不能再稱作完整 theorem-qualified curves,必須寫進 metadata。最後指出一個仍待 Phase 1 v0.2 審計的缺口:Algorithm 1 初始用 LMFDB 的 rank 欄位,再透過 special value 條件排除中心消失來實際判定解析秩——完整重現時應顯式分開保存 algebraic rank 欄位、analytic rank 欄位與 special value nonvanishing,避免兩種 rank 被靜默混為一談。
跟其他文件的關係,盡量用它自己文件裡的話,不是我的解讀。
「本地 Agent 必須把這些 flags 寫入 metadata,不能只保存結果清單。」— 摘自本文「5. Soundness-sensitive flags」。
載入中…