目標與範圍
設 A={1,2,3,4}、B={1,2,3,4,5,6},函數表 f:(1,4),(2,6),(3,1),(4,5);g:(1,4),(2,6),(2,6),(3,4),(4,6);h:(1,4),(2,6),(2,5),(3,1),(4,5)。確認各表是否為總函數 A→B;判定 f、g 是否單射並列出纖維;找出 g 按字典序的首碰撞;判定 g 限制到 C={1,2} 是否單射;並說明空定義域的情形。
在 MKO 的範圍內工作:有限整數標籤的函數表。先檢查總函數資格,再以完整比較判定單射,並證明兩個一般小引理(只需比較 x<y 的輸入對;單射等價於每個纖維至多一個元素)。結果只針對這些表,不外推到其他函數;不處理無限定義域;不改動 canonical MKO 或英文 edition。
逐步主鏈
S01 · implies
操作前
f:\ (1,4),(2,6),(3,1),(4,5)
操作後
f:A\to B\ \text{total};\ f(1)=4,\ f(2)=6,\ f(3)=1,\ f(4)=5條件:無
規則:table_function · 依賴:G1, G2, table_function
葉節點依據:table_function + roster_membership
MKO 第一段:先檢查表格在 A 上總定義。A 的四個輸入 1、2、3、4 各恰出現在一列,輸出 4、6、1、5 都在 B 中,沒有同一輸入配不同輸出。所以 f 是總函數 A→B。
S02 · equivalent
操作前
\forall x,y\in A:\ f(x)=f(y)\Rightarrow x=y
操作後
\forall x,y\in A:\ x\neq y\Rightarrow f(x)\neq f(y)
條件:無
規則:contrapositive · 依賴:mko_injective_def, contrapositive
葉節點依據:mko_injective_def + contrapositive
依 MKO 的定義,單射是「f(x)=f(y) 蘊涵 x=y」。對每一對 x、y 取逆否命題,得「x≠y 蘊涵 f(x)≠f(y)」,即不同輸入有不同輸出。之後用這個形式逐對比較。
S03 · equivalent
操作前
\forall x,y\in A:\ x\neq y\Rightarrow f(x)\neq f(y)
操作後
\forall x,y\in A:\ x<y\Rightarrow f(x)\neq f(y)
條件:A\subseteq\mathbb{Z}
規則:L_pairs_lt · 依賴:S02, L_pairs_lt
葉節點依據:case_analysis + order_basics
依引理 L_pairs_lt,只需比較 x<y 的輸入對;A 有 C(4,2)=6 個這樣的對(N2)。x=y 的情形不需比較,x>y 的情形與 y<x 重複。
S04 · implies
操作前
(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)
操作後
4\neq 6,\ 4\neq 1,\ 4\neq 5,\ 6\neq 1,\ 6\neq 5,\ 1\neq 5;\ f\ \text{injective}條件:無
規則:forall_intro · 依賴:S01, S03, forall_intro
葉節點依據:case_analysis + roster_membership + numeric_evaluation + forall_intro
逐一比較六個輸入對的輸出:f(1)=4 與 f(2)=6、f(3)=1、f(4)=5 都不同;f(2)=6 與 f(3)=1、f(4)=5 不同;f(3)=1 與 f(4)=5 不同。所有 x<y 的對都輸出不同(N1 以差的乘積非零核對),這是對有限 A 的完整檢查,依 S03,f 是單射。
S05 · implies
操作前
f^{-1}(\{b\})=\{x\in A\mid f(x)=b\},\ b\in B操作後
\{3\},\ \varnothing,\ \varnothing,\ \{1\},\ \{4\},\ \{2\}\quad(b=1,2,3,4,5,6)條件:無
規則:image_preimage_def · 依賴:S01, image_preimage_def
葉節點依據:image_preimage_def + roster_membership + numeric_evaluation
對 B 的每個 b 列出纖維:b=1 時只有 f(3)=1,纖維 {3};b=2、3 時沒有輸入對應,纖維為空;b=4 是 {1};b=5 是 {4};b=6 是 {2}。每個纖維至多一個元素;纖維大小總和 1+0+0+1+1+1=4=|A|(N8),每個輸入恰屬於一個纖維。
S06 · theorem_application
操作前
|f^{-1}(\{b\})|\le 1\ \text{for all}\ b\in B操作後
f\ \text{injective}條件:無
規則:L_fiber · 依賴:S04, S05, L_fiber
葉節點依據:image_preimage_def + eq_refl_symm_trans + mko_injective_def
依引理 L_fiber,「每個纖維至多一個元素」與單射等價。S05 的纖維都至多一個元素,所以由纖維也得到 f 單射,與 S04 的逐對比較一致。這正是 MKO 敘述中的纖維等價形式。
S07 · implies
操作前
f^{-1}(\{2\})=f^{-1}(\{3\})=\varnothing操作後
f\ \text{injective but not surjective}條件:無
規則:injective_surjective_def · 依賴:S05, S04, injective_surjective_def
葉節點依據:injective_surjective_def + image_preimage_def
陪域元素 2 與 3 的纖維是空的,沒有原像,所以 f 不是滿射;但 f 仍是單射(S04、S06)。MKO 第二段:單射可以漏掉陪域的元素,纖維大小可以是零或一。
S08 · implies
操作前
g:\ (1,4),(2,6),(2,6),(3,4),(4,6)
操作後
g:A\to B\ \text{total};\ g(1)=4,\ g(2)=6,\ g(3)=4,\ g(4)=6條件:無
規則:table_function · 依賴:G1, G2, table_function
葉節點依據:table_function + roster_membership
g 的表中 (2,6) 列了兩次。兩列完全相同,只是同一個有序對的重複列出(MKO 第一段),不構成「同一輸入配不同輸出」。四個輸入各有唯一輸出,輸出都在 B 中,所以 g 是總函數 A→B。
S09 · implies
操作前
g(1)=4=g(3),\ 1\neq 3
操作後
g\ \text{not injective}條件:無
規則:quantifier_negation · 依賴:S08, mko_injective_def, quantifier_negation
葉節點依據:quantifier_negation + exists_intro + mko_injective_def
單射的否定(量詞否定律加上 ¬(P⇒Q) ⇔ P∧¬Q)是:存在 x、y∈A 使 g(x)=g(y) 且 x≠y。取 x=1、y=3:g(1)=g(3)=4(N3)而 1≠3。這個碰撞見證就足以說明 g 不是單射。
S10 · implies
操作前
\{(x,x')\mid x<x',\ g(x)=g(x')\}操作後
\{(1,3),(2,4)\},\ \text{first}=(1,3)條件:無
規則:lex_order · 依賴:S08, lex_order
葉節點依據:lex_order + case_analysis + numeric_evaluation
MKO 第三段:有限首碰撞先取 x<x′,再按 (x,x′) 字典序選首對。逐一比較六對:(1,2):4 與 6 不同;(1,3):4=4,碰撞;(1,4):4 與 6 不同;(2,3):6 與 4 不同;(2,4):6=6,碰撞;(3,4):4 與 6 不同(N4、N5)。碰撞集合為 {(1,3),(2,4)};因 1<2,字典序首對是 (1,3)。
S11 · implies
操作前
g^{-1}(\{b\}),\ b\in B操作後
g^{-1}(\{4\})=\{1,3\},\ g^{-1}(\{6\})=\{2,4\},\ \text{others}\ \varnothing條件:無
規則:image_preimage_def · 依賴:S08, image_preimage_def, L_fiber
葉節點依據:image_preimage_def + roster_membership + numeric_evaluation
g 的纖維:4 的纖維是 {1,3},6 的纖維是 {2,4},其餘 b=1、2、3、5 的纖維為空。大小總和 0+0+0+2+0+2=4=|A|(N9)。有兩個纖維含兩個元素,依 L_fiber 再次得到 g 不是單射,每個大小 2 的纖維對應一個碰撞。
S12 · implies
操作前
g|_C,\ C=\{1,2\}操作後
g|_C(1)=4\neq 6=g|_C(2),\ g|_C\ \text{injective}條件:無
規則:restriction_def · 依賴:S08, G3, restriction_def, L_pairs_lt
葉節點依據:restriction_def + case_analysis + numeric_evaluation
限制到 C={1,2}:g|_C(1)=4、g|_C(2)=6。C 中 x<y 的對只有 (1,2),而 4≠6(N6),依 L_pairs_lt,g|_C 是單射。MKO 第三段:限制後只比較 C 中的輸入,原函數不單射而限制後單射是可能的;兩個碰撞 (1,3)、(2,4) 都至少有一個輸入不在 C 中。
S13 · implies
操作前
h:\ (2,6),\ (2,5)
操作後
h\ \text{is not a function}\ A\to B條件:無
規則:table_function · 依賴:G2, table_function
葉節點依據:table_function + numeric_evaluation
h 的表中輸入 2 出現在 (2,6) 與 (2,5) 兩列,輸出 6≠5(N7)。同一輸入配不同輸出,所以 h 不是函數(MKO 第一段)。單射是對總函數定義的性質,因此「h 是否單射」這個問題不適用;正確的判定是「不是函數」,而不是「不是單射」。
S14 · implies
操作前
f_0:\varnothing\to B
操作後
f_0\ \text{injective}條件:無
規則:forall_intro · 依賴:G3, mko_injective_def, empty_set_def, forall_intro
葉節點依據:empty_set_def + forall_intro + mko_injective_def
空定義域時,單射條件是 ∀x,y∈∅ (f₀(x)=f₀(y)⇒x=y)。任取 x:x∈∅ 為假,前件為假的蘊涵為真,所以條件對每個 x、y 都成立;依 ∀引入,f₀ 是單射(MKO 假設 a2:空定義域的單射條件為真)。
S15 · implies
操作前
\text{S01 to S14}操作後
f\ \text{injective};\ g\ \text{not, first collision}\ (1,3);\ g|_C\ \text{injective};\ h\ \text{not a function};\ f_0\ \text{injective}條件:無
規則:and_intro_elim · 依賴:S01, S04, S07, S08, S09, S10, S12, S13, S14
葉節點依據:and_intro_elim
彙整:f 是總函數且單射,纖維都至多一個元素,但 2、3 沒有原像(S04 到 S07);g 是總函數(重複列無害),不單射,碰撞為 (1,3)、(2,4),首碰撞 (1,3)(S08 到 S11);g|_C 單射(S12);h 不是函數(S13);f₀:∅→B 單射(S14)。