逐步主鏈
S01 · definition
操作前
n!
操作後
F(0)=1,\ \ F(n+1)=(n+1)F(n)\ \ (n\in\mathbb{N})條件:0\in\mathbb{N}
規則:mko_factorial_def · 依賴:G1, G2, mko_factorial_def
葉節點依據:mko_factorial_def + def_unfold
依 MKO,n! 就是 F(n),而 F 只由兩條等式決定:起點 F(0)=1,以及「下一個值 = 新的因數 n+1 乘上前一個值」。本稿之後只使用這兩條等式,不使用任何事先記住的公式。
S02 · definition
操作前
G:\mathbb{N}\to\mathbb{N},\ G(0)=1,\ G(n+1)=(n+1)G(n)操作後
Q(n):\ G(n)=F(n)
條件:無
規則:def_intro · 依賴:S01
葉節點依據:def_intro
為了證明唯一性,任取一個函數 G:ℕ→ℕ,只假設它滿足同樣的兩條等式。對每個 n,把「G(n)=F(n)」這個命題取名為 Q(n),目標是證明所有 n 都有 Q(n)。
S03 · induction_base
操作前
G(0),\ F(0)
操作後
G(0)=1=F(0)
條件:無
規則:eq_refl_symm_trans · 依賴:S01, S02
葉節點依據:eq_refl_symm_trans
歸納基礎:G(0)=1(G 的假設),F(0)=1(定義),依等號的對稱與傳遞得 G(0)=F(0),即 Q(0)。
S04 · induction_step
操作前
G(n)=F(n)
操作後
G(n+1)=F(n+1)
條件:n\in\mathbb{N}\ \text{arbitrary}
規則:eq_replace · 依賴:S01, S02
葉節點依據:eq_replace + eq_refl_symm_trans + forall_elim
設某個 n 有 G(n)=F(n)。則 G(n+1)=(n+1)G(n)(G 的遞迴)=(n+1)F(n)(以歸納假設作等值代換)=F(n+1)(F 的遞迴)。所以 Q(n)⇒Q(n+1)。
S05 · implies
操作前
Q(0),\ \ Q(n)\Rightarrow Q(n+1)
操作後
G=F\ \text{for every such}\ G條件:n_0=0
規則:nat_induction · 依賴:S03, S04, nat_induction, function_def
葉節點依據:nat_induction + function_def + forall_intro
依歸納原理(n₀=0),所有 n∈ℕ 都有 G(n)=F(n)。G 與 F 定義域都是 ℕ、對應域都是 ℕ,且每點的值相同,依 function_def 得 G=F。因 G 是任意取的,依全稱推廣:滿足這兩條等式的函數至多一個。這就是 MKO 中「唯一」的內容。
S06 · definition
操作前
P(n)=\prod_{k=1}^{n} k操作後
P:\mathbb{N}\to\mathbb{N}條件:無
規則:prod_def · 依賴:prod_def, nat_closure
葉節點依據:prod_def + nat_closure + nat_induction
取 a_k=k,令 P(n)=∏_{k=1}^{n} k。P(n) 是自然數:P(0)=1∈ℕ,且若 P(n)∈ℕ,則 P(n+1)=P(n)·(n+1)∈ℕ(nat_closure),依歸納原理對所有 n 成立。所以 P 是 ℕ→ℕ 的函數。
S07 · equivalent
操作前
P(0)=\prod_{k=1}^{0} k操作後
P(0)=1
條件:無
規則:prod_def · 依賴:S06
葉節點依據:prod_def + def_unfold
沒有任何因數的乘積是 1(空乘積),這是 prod_def 的第一條;所以 P 的起始值與 F(0)=1 相同。
S08 · equivalent
操作前
P(n+1)=P(n)\cdot(n+1)
操作後
P(n+1)=(n+1)P(n)
條件:無
規則:mul_comm · 依賴:S06
葉節點依據:prod_def + mul_comm
prod_def 的第二條給出 P(n+1)=P(n)·(n+1);依乘法交換律改寫成 (n+1)P(n),與 F 的遞迴形式完全相同。
S09 · theorem_application
操作前
P(0)=1,\ \ P(n+1)=(n+1)P(n)
操作後
F(n)=\prod_{k=1}^{n} k\ \text{for every}\ n\in\mathbb{N}條件:P:\mathbb{N}\to\mathbb{N}
規則:forall_elim · 依賴:S05, S06, S07, S08
葉節點依據:forall_elim + function_def + def_unfold
P 是 ℕ→ℕ 的函數(S06),且滿足 F 的兩條等式(S07、S08)。S05 對每個這樣的函數成立,取 G=P 得 P=F,即 n!=∏_{k=1}^{n} k。n>0 時,這是從 1 到 n 所有整數的乘積,例如 5!=1·2·3·4·5。
S10 · theorem_application
操作前
F(n)
操作後
F(n)\geq 1\ \text{for every}\ n\in\mathbb{N};\ \text{in particular}\ 0!=1\neq 0條件:無
規則:L_pos · 依賴:S01, L_pos
葉節點依據:nat_induction + order_basics
依引理 L_pos,每個階乘至少是 1,所以沒有任何 n! 等於 0;特別是 0!=1。引理在子步 S10.1、S10.2 以歸納法證明。
S11 · implies
操作前
F(0)=1
操作後
F(1)=1,\ F(2)=2,\ F(3)=6
條件:無
規則:forall_elim · 依賴:S01
葉節點依據:forall_elim + eq_replace + numeric_evaluation
依遞迴逐步代入:n=0 得 F(1)=1·F(0)=1;n=1 得 F(2)=2·F(1)=2;n=2 得 F(3)=3·F(2)=6。每一步乘上的是新因數 n+1,不是 n。
S12 · implies
操作前
F(3)=6
操作後
F(4)=24,\ F(5)=120
條件:無
規則:forall_elim · 依賴:S01, S11
葉節點依據:forall_elim + eq_replace + numeric_evaluation
繼續代入:n=3 得 F(4)=4·F(3)=4·6=24;n=4 得 F(5)=5·F(4)=5·24=120。所以 5!=120。
S13 · implies
操作前
\prod_{k=1}^{5} k操作後
1\cdot 2\cdot 3\cdot 4\cdot 5=120=F(5)
條件:無
規則:prod_def · 依賴:S09, S12
葉節點依據:prod_def + numeric_evaluation
交叉核對:依 prod_def 展開 ∏_{k=1}^{5} k=1·2·3·4·5=120,與 S12 由遞迴得到的 F(5)=120 一致,符合 S09。
S14 · implies
操作前
S05,\ S09,\ S10,\ S12
操作後
\text{goals (1) to (4) established}條件:無
規則:and_intro_elim · 依賴:S05, S09, S10, S12
葉節點依據:and_intro_elim
四個目標分別由 S05(唯一性)、S09(乘積形式)、S10(F(n)≥1,0!=1)與 S12(5!=120)證成。