Version: v0.3.0
ペア数列システム(pair sequence system)の停止性証明を形式検証するプロジェクト。
P進大好きbot 氏のブログ記事「ペア数列の停止性」(巨大数研究 Wiki)の証明を、できるだけ忠実に形式化することを目標とする。
| ディレクトリ | 内容 | 状態 |
|---|---|---|
isabelle/ |
Isabelle/HOL 版 | 完了(停止性を仮定ゼロ・sorry ゼロで証明) |
corrections/ |
Isabelle/HOL の反例・経験検証資料(独立セッション) | 機械検査済みアーカイブ |
memo/ |
停止性に採用しなかった Isabelle/HOL 証明キャンペーン | 機械検査済みアーカイブ |
lean/ |
Lean 4 版(原文の命題 1 つ = ファイル 1 つ) | 作業中 |
python/ |
反例探索・数値検証モデル | 共通 |
tools/ |
原文処理 | 共通 |
ペア数列システムの停止性は、仮定ゼロ・sorry ゼロで形式証明されている。
theorem y5_PSS_wf : "wf y3_PSSrel" (* 停止性 = 展開関係の整礎性 *)
theorem y5_Fdom : ... (* 原文の言明 p_8_7_termination の逐語形 *)- 外部文献 [Buc1] の補題(2.1 / 2.2 / 3.2a / 3.3)もすべて自前で証明しており、引用による穴は無い。
sorryに依存していないことは ML の監査ブロックがビルド時に強制する(isabelle/8/audit.thy)。 停止性の定理群がisabelle/pss_paper.thyの 131 個のsorryのいずれかに到達したら、errorでビルドが落ちる。 緑ビルド=監査合格であり、negative control(意図的に汚した定理を混ぜるとビルドが落ちる)で検証済み。
原文の全命題・補題・系・定理の形式化も完了している(isabelle/task.md の進捗ツリー参照)。
その過程で原文の訂正案を 30 件見つけた(下記)。
| ファイル | 役割 |
|---|---|
isabelle/pss_defs.thy |
論文の定義の形式化(共通) |
isabelle/pss_paper.thy |
論文の命題・補題・系・定理のステートメントのみを転記(すべて sorry) |
isabelle/pss_mechanized.thy |
独自の機械化証明(sorry を解消) |
isabelle/layerB/pss_wip.thy |
証明済みの本体(凍結層) |
isabelle/layerC/pss_scratch.thy |
作業層の互換エンドポイント |
isabelle/ROOT |
Isabelle セッション定義(PSS_A ← PSS_B ← PSS_C の入れ子) |
corrections/ROOT |
反例資料の独立セッション PSS_CORRECTIONS |
memo/ROOT |
不採用キャンペーンの独立セッション PSS_MEMO |
Lean 版の構成は lean/spec.md、進捗は lean/task.md、
作業手順は lean/step.md にある。
各事実は <§番号>_<内容> 形式で命名し、コメントに元論文の節番号(§)と日本語名を付けて
元論文と対応付けられるようにしている。pss_paper.thy の p_ 接頭辞が論文の主張、
pss_mechanized.thy の m_ 接頭辞が独自証明に対応する。
各命題・補題・系・定理の証明状況は isabelle/task.md と lean/task.md に進捗ツリー(未証明🚨 / 証明済✅ / 原文偽❌ / 作業中🤖)としてまとめている。
形式化の過程で見つかった原論文の訂正案は corrections.md に、原文 HTML への修正として集約している。30 件(取り下げた 16 件は corrections-old.md)。
Isabelle — フルビルド(PSS_A → PSS_B → PSS_C を最初から全部建てる):
cd isabelle && isbman build -d . -v PSS_A PSS_B PSS_C
毎ラウンドは作業中の最上層だけ:
cd isabelle && isbman build -d . -v PSS_C
緑の判定は Finished PSS_C がちょうど 1 行、*** で始まる行が 0 行、AUDIT FAILED が 0 行。
停止性木と独立した Isabelle アーカイブ:
cd isabelle && isbman build -d . -d ../corrections -d ../memo -v PSS_MEMO
Lean:
cd lean && lake build
ただし lake build は sorry を warning でしか報告しない。証明の判定には
lean/step.md の「緑の定義」に従い python3 python/check_lean.py <file> を使う。
- W. Buchholz, "A new system of proof-theoretic ordinal functions", Annals of Pure and Applied Logic, Volume 32, 1986, pp. 195–207.
- Bashicu, "BASIC 言語による巨大数のまとめ", 巨大数研究 Wiki ユーザーブログ, 2015.8.21.
- koteitan, "バシク行列の亜種ルールの分類", 巨大数研究 Wiki ユーザーブログ, 2018.6.2.
- P進大好きbot. "ペア数列の停止性", 巨大数研究 Wiki ユーザーブログ, 2018.11.11.