Skip to content

koteitan/pss-proof

Repository files navigation

pss-proof

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 版)

ファイル 役割
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_APSS_BPSS_C の入れ子)
corrections/ROOT 反例資料の独立セッション PSS_CORRECTIONS
memo/ROOT 不採用キャンペーンの独立セッション PSS_MEMO

Lean 版の構成は lean/spec.md、進捗は lean/task.md、 作業手順は lean/step.md にある。

各事実は <§番号>_<内容> 形式で命名し、コメントに元論文の節番号(§)と日本語名を付けて 元論文と対応付けられるようにしている。pss_paper.thyp_ 接頭辞が論文の主張、 pss_mechanized.thym_ 接頭辞が独自証明に対応する。

進捗

各命題・補題・系・定理の証明状況は isabelle/task.mdlean/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 buildsorry を warning でしか報告しない。証明の判定には lean/step.md の「緑の定義」に従い python3 python/check_lean.py <file> を使う。

出典・引用 (Reference)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages