逐步主鏈
S01 · definition
操作前
f,g\ \text{given by tables on}\ A=\{1,2,3\}操作後
f,g:A\to B\ \text{total functions},\ B=\{4,5,6\}條件:無
規則:function_def · 依賴:G1, G2
葉節點依據:function_def
先確認題目給的確實是總函數:在 f 的表中,1、2、3 各出現恰好一次,值 5、6、4 都在 B 中;g 的表也一樣,值 4、4、6 都在 B 中。陪域是題目宣告的 B={4,5,6},不是由表中出現的值反推,所以 g 從未取到的 5 仍屬於陪域。
S02 · definition
操作前
b\in B
操作後
f^{-1}(\{b\})=\{a\in A\mid f(a)=b\}條件:無
規則:fiber_def · 依賴:S01
葉節點依據:fiber_def + image_preimage_def + set_builder
對陪域中的每個目標 b 定義其纖維,即被 f 送到 b 的全部輸入。完整的纖維概況按陪域目標排列,包含沒有原像的目標(空纖維)。f^{-1}({b}) 只是原像記號,對不可逆的函數也有意義。
S03 · equivalent
操作前
f\ \text{injective}操作後
\forall b\in B:\ |f^{-1}(\{b\})|\le 1條件:無
規則:L_inj_fiber · 依賴:S02
葉節點依據:injective_surjective_def + set_builder + eq_refl_symm_trans
依引理 L_inj_fiber,把單射改寫成纖維的條件:每個纖維至多一個元素。引理的兩個方向在 S03.1 與 S03.2 證明,對任意集合上的總函數成立,不需要有限性。
S04 · equivalent
操作前
f\ \text{surjective}操作後
\forall b\in B:\ |f^{-1}(\{b\})|\ge 1條件:無
規則:L_surj_fiber · 依賴:S02
葉節點依據:injective_surjective_def + set_builder
依引理 L_surj_fiber,把滿射改寫成:每個纖維至少一個元素(非空)。證明在 S04.1。
S05 · equivalent
操作前
f\ \text{bijective}操作後
\forall b\in B:\ |f^{-1}(\{b\})|=1條件:無
規則:mko_bijective_def · 依賴:S03, S04
葉節點依據:injective_surjective_def + and_intro_elim + order_basics
雙射的定義是單射且滿射。以 S03、S04 的等價分別替換兩個合取項,得到:每個 b 的纖維同時「至多一個元素」且「至少一個元素」,恰好就是「恰有一個元素」。這個推論不需要先假設纖維有限,也不把一般函數的纖維大小預設為非負整數。這就是 MKO 所說的等價刻畫。
S06 · equivalent
操作前
f^{-1}(\{4\}),\ f^{-1}(\{5\}),\ f^{-1}(\{6\})操作後
\{3\},\ \{1\},\ \{2\}條件:無
規則:set_builder · 依賴:G1, S02
葉節點依據:set_builder + set_extensionality + numeric_evaluation
逐一掃描 A 的三個元素:f(1)=5、f(2)=6、f(3)=4。目標 4 只由 3 達到,目標 5 只由 1 達到,目標 6 只由 2 達到。A 是有限集合,三個元素全部檢查過,所以每個纖維都已完整求出。f 的纖維概況(按 4、5、6)是 (1,1,1)。
S07 · implies
操作前
|f^{-1}(\{4\})|=|f^{-1}(\{5\})|=|f^{-1}(\{6\})|=1操作後
f\ \text{bijective}條件:B=\{4,5,6\}
規則:mko_bijective_def · 依賴:S05, S06
葉節點依據:mko_bijective_def + forall_intro + and_intro_elim
B 恰有 4、5、6 三個目標,S06 顯示三個纖維都恰有一個元素,所以「每個 b∈B 的纖維恰有一個元素」成立;依 S05,f 是雙射。
S08 · equivalent
操作前
g^{-1}(\{4\}),\ g^{-1}(\{5\}),\ g^{-1}(\{6\})操作後
\{1,2\},\ \varnothing,\ \{3\}條件:無
規則:set_builder · 依賴:G2, S02
葉節點依據:set_builder + set_extensionality + numeric_evaluation
對 g 做同樣的掃描:g(1)=4、g(2)=4、g(3)=6。目標 4 由 1 與 2 達到,目標 6 只由 3 達到,目標 5 沒有任何輸入達到。g 的完整纖維概況(按 4、5、6)是 (2,0,1),其中空纖維必須列出。
S09 · implies
操作前
|g^{-1}(\{4\})|=2操作後
g\ \text{not injective}條件:無
規則:L_inj_fiber · 依賴:S03, S08
葉節點依據:L_inj_fiber + contrapositive
纖維 g^{-1}({4})={1,2} 有兩個元素,違反「每個纖維至多一個元素」;依 L_inj_fiber 的 ⇒ 方向取逆否,g 不是單射。具體見證:g(1)=g(2)=4 而 1≠2。
S10 · implies
操作前
g^{-1}(\{5\})=\varnothing操作後
g\ \text{not surjective}條件:5\in B
規則:L_surj_fiber · 依賴:S04, S08
葉節點依據:L_surj_fiber + contrapositive
5 屬於宣告的陪域 B,但它的纖維是空集合;依 L_surj_fiber,g 不是滿射。所以 g 兩個條件都不滿足,屬於「兩者皆非」一類。
S11 · implies
操作前
|A|=|B|=3,\ g\ \text{not bijective}操作後
\neg\,\forall\varphi:A\to B\ (\varphi\ \text{bijective})條件:無
規則:quantifier_negation · 依賴:G1, S09
葉節點依據:quantifier_negation + exists_intro
A 與 B 各有三個元素,大小相等;但 S09 已證 g 不是雙射。所以「大小相等的有限集合之間,每個函數都是雙射」這個全稱命題有反例 g,為假。這正是 MKO 假設 a1:判定給定函數不能只看兩個集合的大小。
S12 · implies
操作前
|A|=3,\ |C|=2
操作後
\neg\exists h:A\to C\ \text{bijective}條件:無
規則:L_no_inj_3_2 · 依賴:G3
葉節點依據:injective_surjective_def + contrapositive
轉到存在性問題。依引理 L_no_inj_3_2,任何 h:A→C 都不是單射,因此沒有一個是雙射。這與前置規則 finite_counting_basics(3≠2)一致,但這裡在 S12.1 至 S12.3 直接證明,不依賴該一般定理。
S13 · implies
操作前
f:A\to B\ \text{bijective}操作後
\exists\varphi:A\to B\ \text{bijective}條件:無
規則:exists_intro · 依賴:S07
葉節點依據:exists_intro
存在性問題「A→B 有沒有某個雙射」由明確見證回答:S07 已證 f 是雙射,所以存在。這與 finite_counting_basics(|A|=|B|=3)一致。注意這個答案只說「有某個」,對 g 是否雙射沒有任何結論。
S14 · implies
操作前
|A|=|B|=3
操作後
3^3=27\ \text{functions},\ 3!=6\ \text{bijections}條件:無
規則:count_maps · 依賴:G1
葉節點依據:count_maps + numeric_evaluation
依乘法原理,A→B 共有 3^3=27 個函數,其中雙射 3!=6 個,所以有 21 個函數不是雙射,g 是其中之一。大小相等只保證「有」雙射,並不使大多數函數成為雙射。
S15 · implies
操作前
\varnothing\to\varnothing
操作後
\varepsilon=\varnothing\ \text{is the unique bijection}\ \varnothing\to\varnothing條件:無
規則:injective_surjective_def · 依賴:G4, function_def
葉節點依據:function_def + injective_surjective_def + cartesian_product_def + forall_intro
函數 ∅→∅ 是 ∅×∅=∅ 的子集合,且每個定義域元素恰有一個值;定義域沒有元素,條件空真,所以唯一的子集合 ∅ 就是唯一的函數,記為 ε。單射空真(沒有兩個輸入可比較),滿射也空真(陪域沒有需要達到的目標),因此 ε 是雙射;按纖維看,陪域沒有目標,「每個纖維恰有一個元素」同樣空真。這對應 a2:|∅|=0=|∅| 時有唯一的空雙射。
S16 · implies
操作前
\text{S07, S09, S10, S12, S13, S15}操作後
f\ \text{bijective};\ g\ \text{neither};\ \exists\,A\to B;\ \nexists\,A\to C;\ \exists!\,\varnothing\to\varnothing條件:無
規則:and_intro_elim · 依賴:S07, S09, S10, S12, S13, S15
葉節點依據:and_intro_elim
把結果分成兩類問題整理。給定函數:f 的纖維概況 (1,1,1),是雙射;g 的纖維概況 (2,0,1),既非單射也非滿射。存在性:A→B 有雙射(見證 f),A→C 沒有,∅→∅ 恰有一個。
局部子步與引理
S03.1 · implies
操作前
f\ \text{injective},\ a,a'\in f^{-1}(\{b\})操作後
a=a'
條件:無
規則:injective_surjective_def · 依賴:S02, injective_surjective_def, set_builder
葉節點依據:injective_surjective_def + set_builder + eq_refl_symm_trans
(⇒)設 f 單射,a、a′ 都在 b 的纖維中。依集合建構式,f(a)=b 且 f(a′)=b,所以 f(a)=f(a′);單射給出 a=a′。纖維中任兩個元素都相等,故至多一個元素。
S03.2 · implies
操作前
\forall b:\ |f^{-1}(\{b\})|\le 1,\ f(a)=f(a')操作後
a=a'
條件:無
規則:injective_surjective_def · 依賴:S02, set_builder, function_def
葉節點依據:function_def + set_builder + injective_surjective_def
(⇐)設每個纖維至多一個元素,且 f(a)=f(a′)。令 b=f(a),因 f 是 A→B 的函數,b∈B。依集合建構式 a 與 a′ 都在 b 的纖維中;該纖維至多一個元素,所以 a=a′,即 f 單射。S03.1 與 S03.2 合起來證得引理 L_inj_fiber。
S04.1 · equivalent
操作前
\exists a\in A:\ f(a)=b
操作後
f^{-1}(\{b\})\neq\varnothing條件:無
規則:set_builder · 依賴:S02, injective_surjective_def, set_builder
葉節點依據:set_builder + injective_surjective_def
滿射的定義是:每個 b∈B 都有某個 a∈A 使 f(a)=b。對固定的 b,「有某個 a 使 f(a)=b」恰好表示集合 {a∈A ∣ f(a)=b} 有元素,即纖維非空。對所有 b 取全稱,得到引理 L_surj_fiber。
S12.1 · case_split
操作前
h:\{1,2,3\}\to\{4,5\}操作後
h(1)=h(2)\ \lor\ h(1)\neq h(2)
條件:無
規則:case_analysis · 依賴:G3, function_def
葉節點依據:case_analysis + injective_surjective_def
任取函數 h:A→C,分兩種情形,兩者涵蓋一切可能。情形一 h(1)=h(2):因 1≠2,h 已不是單射,這個情形完成。情形二 h(1)≠h(2) 在 S12.2、S12.3 處理。
S12.2 · implies
操作前
h(1)\neq h(2),\ h(1),h(2)\in\{4,5\}操作後
\{h(1),h(2)\}=\{4,5\}條件:無
規則:case_analysis · 依賴:S12.1, G3
葉節點依據:case_analysis + set_extensionality
情形二:h(1) 是 4 或 5。若 h(1)=4,則 h(2)≠4,而 h(2)∈{4,5},所以 h(2)=5;若 h(1)=5,同理 h(2)=4。兩個子情形都得到 {h(1),h(2)}={4,5}。
S12.3 · implies
操作前
h(3)\in\{4,5\}=\{h(1),h(2)\}操作後
h(3)=h(1)\ \lor\ h(3)=h(2)
條件:無
規則:injective_surjective_def · 依賴:S12.2
葉節點依據:injective_surjective_def + case_analysis + forall_intro
h(3) 也在 {4,5}={h(1),h(2)} 中,所以 h(3)=h(1) 或 h(3)=h(2);而 3≠1、3≠2,兩種都違反單射。情形一(S12.1)與情形二都得到 h 不是單射,h 又是任意取的,S12.1 至 S12.3 證得引理 L_no_inj_3_2。