ライブラリ / SDK
teorth/analysis avatar
teorth/analysis

teorth/analysis:『Analysis I』の Lean コンパニオン

分析 I のリーンな付属品。たとえば、第 2 章では Mathlib に依存しない自然数の理論を展開しますが、後続のすべての章では代わりに Mathlib の自然数を使用します。

スター 1,908フォーク 263LeanApache-2.0

ひと目でわかる

これは何?
Terence Tao 著『Analysis I』の Lean による忠実な形式化。Mathlib 定義への段階的移行と、教科書とは無関係の Lean コンテンツを併せて紹介する。
誰に向いている?
teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。
商用利用できる?
できます。Apache-2.0 は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
今もメンテナンスされている?
されています。最後のコミットは 11 日前です。
何の言語で書かれている?
主に Lean です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

Analysis IをLeanへ写す範囲

teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 Analysis IをLeanへ写す範囲では、READMEにある対象と範囲をこの節の論点として読みます。

『Analysis I』の Lean による形式化。このリポジトリには、Lean 証明支援系による Terence Tao 著『Analysis I』の形式化が含まれている。README はこれを教科書への忠実な言い換えと位置づけており、原書に近い内容を保ちながら Lean の機能と構文を示すことを目的としている。著者は、形式化が効率を最適化しておらず、一部では慣用的な Lean の書き方から外れることがあると明言している。本書で読者への練習問題として残された箇所は、形式化では sorry として置かれており、著者は解答をこのリポジトリに直接置くつもりはないとしている。代わりに、読者がリポジトリを fork して練習問題に取り組むことを歓迎している。README はまた、教科書からの直接の引用は避け、適切な箇所で原書への参照を示すと説明しており、この形式化は原書の注釈付き伴走資料であって、代替物ではないとしている。

導入判断ではanalysisのREADMEに記載された具体的な入口を一つ選び、入力、設定、出力、エラーを同じ記録に残します。資料にない性能や安全性は補いません。teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 実行前後の差分を確認し、更新で挙動が変わった箇所だけを切り分けます。 Analysis IをLeanへ写す範囲に関してREADMEが明記していない条件は、未確認のまま採用範囲の外へ置きます。

自然数からMathlibへ移る設計

teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 自然数からMathlibへ移る設計では、READMEにある対象と範囲をこの節の論点として読みます。

Mathlib 定義への段階的移行。『Analysis I』の内容の多くは、Lean の標準数学ライブラリである Mathlib にすでに存在するが、定義が少し異なる。README は、この形式化がそれらの違いをどう調整するかを説明している。教科書由来の定義から Mathlib 由来の定義へと段階的に移行し、読み進めるほど Mathlib への依存が強まる。自己完結性を犠牲にして互換性を取るという設計だ。たとえば第 2 章では Mathlib とは独立に自然数論を構築するが、それ以降の章ではすべて Mathlib の自然数を使う。第 2 章のエピローグでは、二つの自然数の定義が同型であることを示している。第 5 章のエピローグでは Mathlib の実数との同型を証明し、第 6 章のエピローグでは本章の極限と Mathlib の極限を結びつけている。この設計のため、README はこの形式化を Mathlib のさまざまな部分への入門としても使えると述べている。

導入判断ではanalysisのREADMEに記載された具体的な入口を一つ選び、入力、設定、出力、エラーを同じ記録に残します。資料にない性能や安全性は補いません。teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 実行前後の差分を確認し、更新で挙動が変わった箇所だけを切り分けます。 自然数からMathlibへ移る設計に関してREADMEが明記していない条件は、未確認のまま採用範囲の外へ置きます。

全域関数と0始まりの選択

teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 全域関数と0始まりの選択では、READMEにある対象と範囲をこの節の論点として読みます。

教科書からの技術的な変更点。形式化を Mathlib の慣習に合わせるため、教科書と比べて少数の技術的な変更が定義に加えられている。README はその中で最も顕著な三つを挙げている。一つ目は、数列の添え字を 1 ではなく 0 から始めること。Mathlib は 0 始まりの自然数 ℕ に対するサポートがはるかに充実しているためだ。二つ目は、教科書では未定義のままにされている演算、たとえばゼロ除算や非コーシー列の形式極限などに、ジャンク値(たとえば 0)を割り当てて全関数にすること。README は、Lean は部分関数よりも全関数のサポートが優れていると説明し、型理論におけるゼロ除算についての Kevin Buzzard のブログ記事へのリンクを添えている。三つ目は、第 2 章の自然数を純粋な公理的方法ではなく帰納型で構成し、ペアノの公理を同章のエピローグで形式化していること。いずれも Mathlib との互換性を出発点としている。

導入判断ではanalysisのREADMEに記載された具体的な入口を一つ選び、入力、設定、出力、エラーを同じ記録に残します。資料にない性能や安全性は補いません。teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 実行前後の差分を確認し、更新で挙動が変わった箇所だけを切り分けます。 全域関数と0始まりの選択に関してREADMEが明記していない条件は、未確認のまま採用範囲の外へ置きます。

章構成とVersoドキュメント

teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 章構成とVersoドキュメントでは、READMEにある対象と範囲をこの節の論点として読みます。

カバー範囲と構成。教科書の第 1 章は形式化されていない。第 2 章から第 11 章までがすべて含まれ、付録 A(数学的論理の基礎)と付録 B(十進法)も含まれる。章の並びは、自然数、集合論、整数と有理数、実数、数列の極限、級数、無限集合、連続関数、微分、リーマン積分の順である。README は各節について三つのリンクを提供している。形式化された内容を表示する Verso ページ、生成された HTML ドキュメント、そして Lean のソースファイルだ。リンクは第 2.1 節(ペアノの公理)から第 11.10 節(微積分の基本定理の帰結)まで並び、節名は教科書の構成に対応している。そのため、リポジトリを閲覧する際は原書の順序に従って進められる。

導入判断ではanalysisのREADMEに記載された具体的な入口を一つ選び、入力、設定、出力、エラーを同じ記録に残します。資料にない性能や安全性は補いません。teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 実行前後の差分を確認し、更新で挙動が変わった箇所だけを切り分けます。 章構成とVersoドキュメントに関してREADMEが明記していない条件は、未確認のまま採用範囲の外へ置きます。

sorryと教科書との差分

teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 sorryと教科書との差分では、READMEにある対象と範囲をこの節の論点として読みます。

リポジトリ内のその他の Lean コンテンツ。『Analysis I』の形式化に加えて、このリポジトリには教科書とは無関係の Lean コンテンツもホストされている。README は、著者が教科書とは無関係の小さな Lean コンテンツをこのリポジトリでホストしていると説明している。具体的には、著者の測度論の本の形式化(作業中と明記)、物理単位系のサポート(単位系の枠組みと SI 単位系、それぞれ使用例付き)、Lean の選択公理を使わない有限選択の形式化、有限確率論、そして Erdős 問題に関連する四つの項目(379 番の解答、613 番に対する Pikhurko の反例、707 番と 987 番の解答)が含まれる。これらの追加コンテンツは教科書の伴走部分とは別にリストされ、それぞれにドキュメントと Lean ソースファイルへのリンクがある。作業中と明記されているのは測度論の形式化だけである。

導入判断ではanalysisのREADMEに記載された具体的な入口を一つ選び、入力、設定、出力、エラーを同じ記録に残します。資料にない性能や安全性は補いません。teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 実行前後の差分を確認し、更新で挙動が変わった箇所だけを切り分けます。 sorryと教科書との差分に関してREADMEが明記していない条件は、未確認のまま採用範囲の外へ置きます。

採用判断と最初に読むファイル

teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 採用判断と最初に読むファイルでは、READMEにある対象と範囲をこの節の論点として読みます。

プロジェクトと Web ページのビルド。README には二つのビルド経路が記載されている。Lean をインストールしてリポジトリをクローンした後、./build.sh を実行するとプロジェクト自体がビルドされる。./build-web.sh を実行するとプロジェクトの Web ページがビルドされ、出力は _site/ に置かれる。その後、python3 serve.py でページを配信できる。Lean と Mathlib のバージョン更新は手動の作業で、lakefile.lean を編集して Mathlib と doc-gen4 の require 行を変更し、lean-toolchain ファイルの Lean バージョンを変更し、lake update -R -Kenv=dev を実行する。README は、この操作で lean-toolchain が最新の Lean バージョンに変わってしまう可能性があり、その場合は意図したバージョンに戻す必要があると注意している。また、このプロジェクトは doc-gen4 を条件付きで要求するために非推奨の方法を使っているとも述べている。

導入判断ではanalysisのREADMEに記載された具体的な入口を一つ選び、入力、設定、出力、エラーを同じ記録に残します。資料にない性能や安全性は補いません。teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 実行前後の差分を確認し、更新で挙動が変わった箇所だけを切り分けます。 採用判断と最初に読むファイルに関してREADMEが明記していない条件は、未確認のまま採用範囲の外へ置きます。

編集部の結論

teorth/analysisはLeanで数学書Analysis Iを形式化するリポジトリです。READMEは原書の代替ではなく注釈付きコンパニオンだと説明し、Leanの構文とMathlibとの違いを教材として残しています。 向いているのはREADMEの対象環境と入力形式を管理できる利用者です。本番の保証や性能をREADMEだけで決めたい利用者には向きません。 最初に確認する対象はREADMEの導入手順と生成物、権限、失敗時のログです。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
コミュニティノート

コミュニティノート