analysis:從 README 拆解能力、限制與採用條件
分析 I 的精實伴侶。例如,第 2 章發展了獨立於 Mathlib 的自然數理論,但所有後續章節都將使用 Mathlib 自然數。
秒懂
- 它是什麼?
- 以 teorth/analysis 的 README 為依據,整理用途、實作入口、依賴條件與適用範圍。
- 適合誰用?
- analysis 適合需要 A Lean companion to Analysis I. For instance, Chapter 2 develops a theory of the natural numbers independent of Mathlib, but all subsequent chapters will use the Mathlib natural numbers instead. 能力,且能滿足版本、平台與依賴條件的使用者;不適合把文件未承諾的功能當成既定行為的人。採用前應依 analysis 文件中的命令與檔案完成最小流程,核對輸入、輸出、權限及失敗時的錯誤訊息,再決定是否納入長期系統。
- 可以商用嗎?
- 可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫最近一次提交在 11 天前。
- 用什麼語言寫的?
- 主要是 Lean(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。
開源專案深度解析
analysis:用 Lean 形式化《分析一》
analysis 的 README 將這一段放在實作脈絡中,重點是它在 teorth/analysis 裡實際承擔的責任。依文件所述,使用者可以理解資料如何流動、哪些元件需要先準備,以及哪些行為仍取決於平台、帳號或硬體狀態。\n\n這個倉庫包含用 Lean 證明助手對陶哲軒《分析一》一書的形式化。README 將其描述為對原書尽可能忠實的轉述,目標是貼近原書內容,同時展示 Lean 的功能和語法。作者明確表示,形式化並未針對執行效率做最佳化,某些地方也可能偏離慣用的 Lean 寫法。書中留給讀者的練習段落,在形式化中以 sorry 佔位,作者不打算把解答直接放進這個倉庫,而是歡迎讀者 fork 後自行嘗試這些練習。README 也說明,形式化沒有直接引用教材原文,而是在適當位置給出對原書的引用,因此這個計畫應被視為原書的註釋版伴讀,而非替代品。這一定位決定了倉庫的整體形態:它依附於原書存在,章節順序、定理安排都與教材保持一致。\n\n針對 analysis,先固定版本與依賴,再依文件出現的命令或檔案路徑執行最小流程,觀察輸出是否符合描述。涉及權限、網路、平台或硬體時,前置條件不能省略;README 沒有交代的部分,不當成專案已保證的能力。
analysis:與 Mathlib 定義的逐步交接
analysis 的 README 將這一段放在實作脈絡中,重點是它在 teorth/analysis 裡實際承擔的責任。依文件所述,使用者可以理解資料如何流動、哪些元件需要先準備,以及哪些行為仍取決於平台、帳號或硬體狀態。\n\n《分析一》中的大量數學內容已經存在於 Mathlib,也就是 Lean 的標準數學庫中,只是定義略有不同。README 解釋了這個形式化如何調和這些差異:它從教材自帶定義逐步過渡到 Mathlib 定義,越往後越依賴 Mathlib,犧牲了自包含性以換取相容性。例如第 2 章獨立於 Mathlib 建立了一套自然數理論,但從第 3 章起所有後續章節都改用 Mathlib 的自然數,第 2 章的尾聲則證明兩種自然數定義是同構的。第 5 章尾聲同樣證明與 Mathlib 實數同構,第 6 章尾聲則把本章的極限與 Mathlib 的極限聯繫起來。正因為這種設計,README 指出該形式化也可以當作 Mathlib 部分內容的入門材料。這也意味著讀者在閱讀後期章節時,需要同時熟悉 Mathlib 的定義方式。\n\n針對 analysis,先固定版本與依賴,再依文件出現的命令或檔案路徑執行最小流程,觀察輸出是否符合描述。涉及權限、網路、平台或硬體時,前置條件不能省略;README 沒有交代的部分,不當成專案已保證的能力。
analysis:相對教材的技術性改動
analysis 的 README 將這一段放在實作脈絡中,重點是它在 teorth/analysis 裡實際承擔的責任。依文件所述,使用者可以理解資料如何流動、哪些元件需要先準備,以及哪些行為仍取決於平台、帳號或硬體狀態。\n\n為了讓形式化與 Mathlib 慣例對齊,部分定義相比教材做了少量技術性改動,README 列出了三項最明顯的。其一是序列的下標從 0 開始而不是從 1 開始,因為 Mathlib 對基於 0 的自然數支援要好得多。其二是教材中留作未定義的運算,例如除以零或對非柯西序列取形式極限,在這裡都被賦予一個垃圾值(比如 0),使所有運算成為全函數;README 解釋說 Lean 對全函數的支援優於對偏函數的支援,並連結了 Kevin Buzzard 關於型別論中除以零的部落格文章供進一步討論。其三是第 2 章的自然數透過歸納型別構造,而非純公理化方式,皮亞諾公理在該章尾聲中被形式化。這些改動都以相容 Mathlib 為出發點。\n\n針對 analysis,先固定版本與依賴,再依文件出現的命令或檔案路徑執行最小流程,觀察輸出是否符合描述。涉及權限、網路、平台或硬體時,前置條件不能省略;README 沒有交代的部分,不當成專案已保證的能力。
analysis:覆蓋範圍與組織方式
analysis 的 README 將這一段放在實作脈絡中,重點是它在 teorth/analysis 裡實際承擔的責任。依文件所述,使用者可以理解資料如何流動、哪些元件需要先準備,以及哪些行為仍取決於平台、帳號或硬體狀態。\n\n教材第 1 章沒有形式化。第 2 章到第 11 章全部涵蓋,另外還包括附錄 A(數學邏輯基礎)和附錄 B(十進位系統)。章節順序依次是自然數、集合論、整數與有理數、實數、序列的極限、級數、無窮集合、連續函數、微分以及黎曼積分。README 為每一節都提供了三個連結:渲染形式化內容的 Verso 頁面、生成的 HTML 文件、以及對應的 Lean 原始檔。這些連結從第 2.1 節(皮亞諾公理)一直排到第 11.10 節(微積分基本定理的推論),節名與教材結構一致,因此瀏覽倉庫時可以直接依照原書的順序。每個連結都直接給出 URL,方便讀者從某一節跳轉到可讀頁面、文件或原始碼。\n\n針對 analysis,先固定版本與依賴,再依文件出現的命令或檔案路徑執行最小流程,觀察輸出是否符合描述。涉及權限、網路、平台或硬體時,前置條件不能省略;README 沒有交代的部分,不當成專案已保證的能力。
analysis:倉庫中的其他 Lean 內容
analysis 的 README 將這一段放在實作脈絡中,重點是它在 teorth/analysis 裡實際承擔的責任。依文件所述,使用者可以理解資料如何流動、哪些元件需要先準備,以及哪些行為仍取決於平台、帳號或硬體狀態。\n\n除了《分析一》的形式化,README 說明作者還用這個倉庫託管一些與教材無關的次要 Lean 內容。其中包括作者關於測度論一書的形式化,明確標註為進行中;對物理單位系統的支援,涵蓋單位制框架和 SI 國際單位制,各附使用範例;一個避免使用 Lean 選擇公理的有限選擇形式化;一些有限機率論內容;以及四道 Erdős 問題相關條目:第 379 號的解答、Pikhurko 對第 613 號的反例、第 707 號的解答和第 987 號的解答。這些附加內容與教材伴讀部分分開列出,每項都有獨立的文件和 Lean 原始檔連結,只有測度論形式化被標註為未完成。\n\n針對 analysis,先固定版本與依賴,再依文件出現的命令或檔案路徑執行最小流程,觀察輸出是否符合描述。涉及權限、網路、平台或硬體時,前置條件不能省略;README 沒有交代的部分,不當成專案已保證的能力。
analysis:構建專案與網頁
analysis 的 README 將這一段放在實作脈絡中,重點是它在 teorth/analysis 裡實際承擔的責任。依文件所述,使用者可以理解資料如何流動、哪些元件需要先準備,以及哪些行為仍取決於平台、帳號或硬體狀態。\n\nREADME 記錄了兩種建置方式。安裝 Lean 並複製倉庫之後,執行 ./build.sh 即可建置專案本身;執行 ./build-web.sh 則建置專案的網頁,產物輸出到 _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。整個更新流程強調逐步進行,不建議直接跳到最新版本。\n\n針對 analysis,先固定版本與依賴,再依文件出現的命令或檔案路徑執行最小流程,觀察輸出是否符合描述。涉及權限、網路、平台或硬體時,前置條件不能省略;README 沒有交代的部分,不當成專案已保證的能力。
analysis:授權條款與外部資源
analysis 的 README 將這一段放在實作脈絡中,重點是它在 teorth/analysis 裡實際承擔的責任。依文件所述,使用者可以理解資料如何流動、哪些元件需要先準備,以及哪些行為仍取決於平台、帳號或硬體狀態。\n\n該倉庫以 Apache License 2.0 散佈。授權條款摘錄授予一項永久、全球範圍、非獨佔、免費、免版稅且不可撤銷的版權授權,允許複製、準備衍生作品、公開展示、公開表演、再授權和散佈該作品;同時授予一項專利授權,涵蓋貢獻者貢獻所必然侵犯的專利請求項,但若接受方提起專利訴訟,授權將終止。摘錄部分沒有提及擔保、支援或安全方面的條款,README 也沒有在這些方面做出任何承諾。README 還列出了其他資源:專案網頁、原書網頁及 Springer 版本、2025 年 5 月 31 日宣布該專案的部落格文章、Lean Zulip 討論頻道、貢獻者說明,以及另一個團隊建立的《分析二》Lean 形式化。\n\n針對 analysis,先固定版本與依賴,再依文件出現的命令或檔案路徑執行最小流程,觀察輸出是否符合描述。涉及權限、網路、平台或硬體時,前置條件不能省略;README 沒有交代的部分,不當成專案已保證的能力。
編輯結論
analysis 適合需要 A Lean companion to Analysis I. For instance, Chapter 2 develops a theory of the natural numbers independent of Mathlib, but all subsequent chapters will use the Mathlib natural numbers instead. 能力,且能滿足版本、平台與依賴條件的使用者;不適合把文件未承諾的功能當成既定行為的人。採用前應依 analysis 文件中的命令與檔案完成最小流程,核對輸入、輸出、權限及失敗時的錯誤訊息,再決定是否納入長期系統。
社群筆記