概要
- Analysis I の内容を Lean で形式化したコンパニオンの紹介
- 自然数や集合論 など、基礎的な構成と証明をLeanで再現
- Mathlib との連携と独自定義の使い分け方針
- 演習問題 はLeanの“sorries”として実装し、解答は利用者に委ねる設計
- Lean/Mathlib学習 や 実分析入門 としても活用可能
「Analysis I」Leanコンパニオンの概要
- 約20年前に執筆した実解析教科書 “Analysis I” の内容を、 Lean による形式化で拡張
- 自然数・整数・有理数・実数の構成、集合論・論理など、基礎理論の厳密な証明力を重視
- 当時は Coq や Agda 等の証明支援系は認識していなかったが、現在Leanとの高い親和性を実感
- 書籍内の定義・定理・演習問題を Leanコード へ“翻訳”し、演習は“sorries”を埋める形で実施可能
- 公式解答 は提供せず、各自でリポジトリをフォークして“sorries”を埋める運用を推奨
Leanへの翻訳済みセクション
- Section 2.1: 自然数の構成
- Section 2.2: 加法
- Section 2.3: 乗法
- Chapter 2 Epilogue: Mathlib自然数との同型性
- Section 3.1: 基本的な集合論
- Section 4.1: 整数の構成
Mathlibとの連携・独自定義の方針
- 一部は Lean標準ライブラリMathlib に依存しつつ、一部は独自に定義
- 例: 自然数 はまず独自にChapter2.Natとして構成し、基本的な補題を証明(多くは演習として“sorries”で残す)
- エピローグで Mathlib自然数 との同型性を示し、以降はMathlibの定義・関数を使用
- このパターンを全章で踏襲し、進行とともに Mathlib依存度 を高める設計
- Lean/Mathlibの導入教材 や実解析入門としても利用可能(“Natural number game”とテーマが重なる部分あり)
利用・参加の呼びかけ
- Leanコード はコンパイル可能だが、“sorries”が全て解けるかは未検証
- ボランティアによる“プレイテスト” を募集中
- 補助補題やAPIが直感的に“sorries”を埋めるのに十分か、Lean特有の難解な技法を要しないか等のフィードバック歓迎
- その他のフィードバック も随時受付
更新情報
- 2024年5月31日: コンパニオンを 独立リポジトリ へ移動