<style>button,.story-clue{pointer-events:none}button{opacity:.55}.story-clue{pointer-events:auto}.panel-select{opacity:1}#app-status{display:none}</style>
「なぜ?」から始まる、数学の冒険

小さな「なぜ?」。 大きな冒険。

物語を追い、証明に触れる。気になったら、もうひとつ奥まで。

アカウント不要。APIキー不要。好奇心だけで。

ふたつの入口。お茶の間は、ひとつ。

今日は数学と戦わない

まんがから入ります:17章、64個の小石、必須の式はゼロ。Leanの原文は、訪ねてくるまでガラス越しです。

数学へまっすぐ

証明マップから始めます:名付けられた定理が数千本。そして時計の逆元からR = Tまで、階段を全部登ります。となりでは物語も語り続け、あなたを正直に保ちます。

ふたりで読むために作りました:数学好きと、数学が苦手なひと。ソファは一台。それぞれが持ち帰ったものは、お茶の間へ運びます。

「まだわからない」から始めよう。

全17章で、ひとつの大きな道筋へ。今日は、小さな発見がひとつあれば十分。

全17章 · Lean元の原文 ↗

ピップの心得:まちがいも手がかり。どの章にも進めて、何度でも考え直せます。

レベルを下げ、空の部屋を開け、事件を解決する。

読み方を選ぶ証明項と依存先をたどる。
証明全体のマップを開く29,511の定理・正確な主張・依存関係

英語や日本語で定理を検索できます。主要な定理には日本語の見出しがあります。文脈全体はGitHubの原文から確かめられます。

この章で見つけたいこと

物語の理解、原文の確認、形式的な検証を区別しよう。

#guard_msgs
処理時に出た診断が、指定された期待する内容と一致するか検査する。
カーネルとこの読書アプリ
Leanは証明項を検査。このアプリは原文のハッシュや行対応を保って解説する。
たとえ話と数学の境界

フクロウの審査官は証明検査器のたとえです。この画面を読むことは、FLT全体をLeanで再検証することではありません。

</>FinalCheck.lean
import Theorems.Thm_fermat_last_theorem
/-- info: 'fermat_last_theorem' depends on axioms: [propext, Classical.choice, Quot.sound] -/
#guard_msgs in
#print axioms fermat_last_theorem
theorem flt_pinned (n : ℕ) (hn : 3 ≤ n) (a b c : ℕ) (ha : 0 < a) (hb : 0 < b) (hc : 0 < c) : a ^ n + b ^ n ≠ c ^ n := fermat_last_theorem n hn a b c ha hb hc
theorem flt_mathlib : FermatLastTheorem := fun n hn a b c ha hb hc => fermat_last_theorem n hn a b c (Nat.pos_of_ne_zero ha) (Nat.pos_of_ne_zero hb) (Nat.pos_of_ne_zero hc)
#print axioms flt_mathlib

👩🏻‍🎨 ミカ · 原文を読むための案内

#guard_msgsが#print axioms fermat_last_theoremの診断を検査します。flt_pinnedは明示的な型の主張を、flt_mathlibはMathlibのFermatLastTheoremを実現します。原文のスナップショットはカーネル検査の結果ではないので、このアプリではFLTをローカル検証済みとは表示しません。

元の原文への注釈・Leanの実行状態ではありません

コマの手がかりや原文の色つきの語句に触れると、対応をたどれます。

この論理を試してみる →
出典と検証の範囲

出典:anthropics/fermats-last-theorem(aa2d8b3)。上流では検証済みと報告されていますが、このアプリでは全体を再ビルド・再検証していません。漫画の解説自体は形式的な証明ではありません。

ソースのライセンスと著作者表示
第17章/全17章・Lean

融通のきかない審査官

感動的な演説は、証明項の代わりにならない。

ここまでと、この先

矛盾まで読んで、数学の道筋が一周しました。最後は、その道筋を理解すること、Leanの原文を見ること、Leanのカーネルで実際に検査することを区別します。このサイトを読むだけで、その全検査を実行したことにはなりません。

このつながりは、読む道筋の案内です。物語のたとえ自体が、この定理の証明になるわけではありません。

まず、この言葉から

知っている言葉は飛ばして大丈夫。初めてなら、言葉を開くか、基礎から順に読んでみよう。

  1. Leanの主張を読む対象・条件・結論を分けて読みます。
  2. 公理と証明の検査定理の証明が、どの基礎的な仮定に依存するかを調べます。
この章を基礎から順に説明して →
お茶の間で話す
ピップ
「裁判官、こちらが書類です:読み込んだ定理と、依存先の全リスト。数学を書いたわけではありません——運送しただけです。」
最後の窓口

物語 → 証明フクロウへ渡す本は、読み込んだ定理とその依存先。この短い確認用ファイルが証明全体ではありません。

実際の定理を読み込むimport Theorems.Thm_fermat_last_theorem
フクロウ
「フクロウは拍手をしません。#print axiomsを実行します:基礎の仮定をすべて列挙。手抜きも、空気読みもなし。」
証拠をお願いします

物語 → 証明フクロウの点検は#print axioms。定理がどの基礎的な公理に依存するかLeanに尋ねます。拍手は証拠になりません。

公理への依存を調べる#print axioms fermat_last_theorem
ミカ
「証言台に三つの形:propext、Classical.choice、Quot.sound。法廷の土台であって、FLTについての信じごとではありません。」
土台も確認

物語 → 証明三つの形はpropext・Classical.choice・Quot.sound。基礎となる公理であり、FLTが正しいと仮定したものではありません。

報告された基礎を読むpropext, Classical.choice, Quot.sound
ピップ
「これで閉廷:主張の形は望んだ形と一致、自然数と正の数の証拠つき。事件ファイル:検査済みです。」
次の一歩へ

物語 → 証明本を閉じる前に主張の形も合わせます。自然数では、0ではないという証拠から正であることが得られます。

非零から正へNat.pos_of_ne_zero ha

物語の向こうにある考え方

#guard_msgsが#print axioms fermat_last_theoremの診断を検査します。flt_pinnedは明示的な型の主張を、flt_mathlibはMathlibのFermatLastTheoremを実現します。原文のスナップショットはカーネル検査の結果ではないので、このアプリではFLTをローカル検証済みとは表示しません。

FLT全体に新しい「ローカル検証済み」表示をつけられるのは?

  • 必要な依存先とツールチェーンをそろえ、固定版の検査が実際に成功したとき。
  • 原文の#print axiomsを目で読んだとき。

このページで物語と原文を読めます。証明の編集、クイズ、対話式のマップにはJavaScriptを有効にしてください。

ここまで来たら、もう道筋を知っている。次は気になるところを、ひとつ深く読んでみよう。

読む。試す。腑に落ちる。

  1. 漫画を読み、「物語」「数学」「Lean」で深さを選びます。
  2. 証明のプレイグラウンドへ。タクティクを編集すると、目標が変わります。
  3. 状態、言葉、ヒントを選んでみよう。まわり道も物語の一部です。

練習では小さな命題論理を検査します。FLTの抜粋は編集できる読み物で、リアルタイムのLean検証ではありません。FLT全体の検証は上流の報告として扱います。

わからない・道に迷った

ミカのたすけ舟

融通のきかない審査官

今は、一つだけ

迷ったら、天秤のケーキの話から。ひとまとまりずつで大丈夫。フェルマーの章なら、まず「物語」と「まず、この言葉から」を読もう。

言葉をほどこう

最初からLeanや大学の数学を知っている必要はありません。小さな物語では、使う言葉から説明します。

小さな手がかり

一般の式より先に、小さな例を見よう。「何を変えて、何を同じに保った?」と考えてみてね。

閉じれば、読んでいた場所に戻れます。このページに合わせて用意したヒントです。

最初の小さな物語から読む →