{
  "schema_version": "ocme-derivation-reader-v1",
  "guide_id": "derivation-mko-surjective-01",
  "mko_id": "mko-surjective",
  "title": {
    "zh-Hant": "滿射與陪域覆蓋：值域、原像與陪域變更",
    "en": "Surjectivity and codomain coverage: range, preimages and changing the codomain"
  },
  "contract": {
    "schema_version": "ocme-derivation-guide-v0.1",
    "guide_id": "derivation-mko-surjective-01",
    "source": {
      "mko_id": "mko-surjective",
      "commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f",
      "sha256": "9e23f524f4cd5d7a32f8fed322c2a1717b66148676cc519dc1288a1346303feb",
      "english_sha256": "dc93237b8c19a6b091095797c7bb5b1ffc1e339f1c4437a9a8fecc626775520a"
    },
    "mode": "definition_walkthrough",
    "audience_prerequisites": [
      "function_def",
      "image_preimage_def",
      "set_extensionality",
      "exists_intro",
      "numeric_evaluation",
      "table_function"
    ],
    "goal": {
      "zh-Hant": "設 A={1,2,3,4,5}、B={1,2,3}，函數表 f：(1,2),(2,1),(3,3),(4,2),(5,1)。確認 f 是總函數 A→B，求值域 f[A] 與各原像，判定 f 是否滿射並找出 t=2 的首個原像；再把陪域換成 B2={1,2,3,4} 與 B3={1,2} 判定合法性與滿射性；最後處理 ∅→∅ 與 ∅→{7}。",
      "en": "Let A={1,2,3,4,5}, B={1,2,3} and the function table f: (1,2),(2,1),(3,3),(4,2),(5,1). Confirm f is a total function A→B, find the range f[A] and the preimages, decide whether f is surjective and find the first preimage of t=2; then replace the codomain by B2={1,2,3,4} and by B3={1,2}, deciding legality and surjectivity; finally treat ∅→∅ and ∅→{7}."
    },
    "givens": [
      {
        "id": "G1",
        "statement": {
          "zh-Hant": "定義域 A={1,2,3,4,5}，宣告陪域 B={1,2,3}。",
          "en": "Domain A={1,2,3,4,5}, declared codomain B={1,2,3}."
        }
      },
      {
        "id": "G2",
        "statement": {
          "zh-Hant": "函數表 f：(1,2),(2,1),(3,3),(4,2),(5,1)（每列為 (輸入, 輸出)）。",
          "en": "Function table f: (1,2),(2,1),(3,3),(4,2),(5,1) (each row is (input, output))."
        }
      },
      {
        "id": "G3",
        "statement": {
          "zh-Hant": "替換陪域 B2={1,2,3,4}、B3={1,2}；目標 t=2；以及空函數 ∅→∅ 與 ∅→{7}。",
          "en": "Replacement codomains B2={1,2,3,4} and B3={1,2}; the target t=2; and the empty functions ∅→∅ and ∅→{7}."
        }
      }
    ],
    "steps": [
      {
        "id": "S01",
        "uses": [
          "G1",
          "G2",
          "table_function"
        ],
        "before_tex": "f:\\ (1,2),(2,1),(3,3),(4,2),(5,1)",
        "after_tex": "f:A\\to B\\ \\text{total};\\ f(1)=2,f(2)=1,f(3)=3,f(4)=2,f(5)=1",
        "relation": "implies",
        "rule": "table_function",
        "conditions": [],
        "explanation": {
          "zh-Hant": "MKO 假設 a1：定義域、陪域與總函數都要明示。A 的五個輸入各恰出現一次，輸出 2、1、3、2、1 都在 B={1,2,3} 中，沒有輸入配到兩個輸出。所以 f 是總函數 A→B。",
          "en": "MKO assumption a1: domain, codomain and total function must be explicit. Each of the five inputs of A occurs exactly once, the outputs 2, 1, 3, 2, 1 all lie in B={1,2,3}, and no input has two outputs. So f is a total function A→B."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "table_function"
          ],
          "explanation": {
            "zh-Hant": "滿射只對總函數有意義；三個資格條件都已核對。",
            "en": "Surjectivity is meaningful only for a total function; all three qualification conditions are checked."
          }
        },
        "leaf_basis": "table_function + roster_membership"
      },
      {
        "id": "S02",
        "uses": [
          "S01",
          "image_preimage_def",
          "set_extensionality"
        ],
        "before_tex": "f[A]=\\{f(x)\\mid x\\in A\\}",
        "after_tex": "\\{2,1,3,2,1\\}=\\{1,2,3\\}",
        "relation": "equivalent",
        "rule": "image_preimage_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "值域是全部輸出所成的集合。五個輸出依序是 2、1、3、2、1；集合中重複值只算一次，所以 f[A]={1,2,3}。",
          "en": "The range is the set of all outputs. The five outputs are 2, 1, 3, 2, 1 in order; repeated values count once in a set, so f[A]={1,2,3}."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "image_preimage_def",
            "set_extensionality"
          ],
          "explanation": {
            "zh-Hant": "兩個寫法有相同元素，依集合相等雙向成立。",
            "en": "Both descriptions have the same elements, so by set equality it holds both ways."
          }
        },
        "leaf_basis": "image_preimage_def + set_extensionality"
      },
      {
        "id": "S03",
        "uses": [
          "S01",
          "S02",
          "L_range_sub"
        ],
        "before_tex": "f[A]=\\{1,2,3\\}",
        "after_tex": "f[A]\\subseteq B",
        "relation": "theorem_application",
        "rule": "L_range_sub",
        "conditions": [],
        "explanation": {
          "zh-Hant": "依引理 L_range_sub，任何總函數的值域都包含於陪域；本例 {1,2,3}⊆{1,2,3}。所以判定滿射時只需檢查反方向 B⊆f[A]。",
          "en": "By Lemma L_range_sub, the range of any total function is contained in its codomain; here {1,2,3}⊆{1,2,3}. So deciding surjectivity only requires the reverse inclusion B⊆f[A]."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_range_sub"
          ],
          "explanation": {
            "zh-Hant": "引理在 S03.1 證明；它只給一個方向的包含。",
            "en": "The lemma is proved in S03.1; it gives one inclusion only."
          }
        },
        "leaf_basis": "function_def + image_preimage_def + subset_def"
      },
      {
        "id": "S03.1",
        "uses": [
          "function_def",
          "image_preimage_def",
          "subset_def"
        ],
        "before_tex": "y\\in f[A]",
        "after_tex": "y\\in B",
        "relation": "implies",
        "rule": "function_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "設 y∈f[A]。依像的定義，有 x∈A 使 y=f(x)；依函數定義，f(x)∈B，所以 y∈B。y 是任意的，依子集定義 f[A]⊆B。這證得引理 L_range_sub。",
          "en": "Let y∈f[A]. By the definition of image, y=f(x) for some x∈A; by the definition of function, f(x)∈B, so y∈B. Since y is arbitrary, f[A]⊆B by the definition of subset. This proves Lemma L_range_sub."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "function_def",
            "image_preimage_def",
            "subset_def"
          ],
          "explanation": {
            "zh-Hant": "需要 f 是到 B 的函數；反方向 B⊆f[A] 一般不成立，不宣稱。",
            "en": "It needs f to be a function into B; the reverse inclusion B⊆f[A] fails in general and is not claimed."
          }
        },
        "leaf_basis": "function_def + image_preimage_def + subset_def + exists_elim"
      },
      {
        "id": "S04",
        "uses": [
          "S01",
          "image_preimage_def"
        ],
        "before_tex": "f^{-1}(\\{b\\}),\\ b\\in B",
        "after_tex": "f^{-1}(\\{1\\})=\\{2,5\\},\\ f^{-1}(\\{2\\})=\\{1,4\\},\\ f^{-1}(\\{3\\})=\\{3\\}",
        "relation": "implies",
        "rule": "image_preimage_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "逐一列出 B 中每個目標的原像：輸出為 1 的輸入是 2、5；輸出為 2 的是 1、4；輸出為 3 的是 3。三個原像集合互斥，大小 2+2+1=5=|A|（N1），每個輸入恰屬於其中一個。",
          "en": "List the preimages of each target in B: the inputs with output 1 are 2 and 5; with output 2, 1 and 4; with output 3, just 3. The three preimage sets are disjoint, with sizes 2+2+1=5=|A| (N1), every input lying in exactly one of them."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "image_preimage_def",
            "S01"
          ],
          "explanation": {
            "zh-Hant": "需要逐一檢查全部五個輸入；大小總和等於 |A| 是一致性檢查。",
            "en": "All five inputs must be checked; the sizes summing to |A| is a consistency check."
          }
        },
        "leaf_basis": "image_preimage_def + roster_membership + numeric_evaluation"
      },
      {
        "id": "S05",
        "uses": [
          "S04",
          "mko_surjective_def",
          "exists_intro",
          "case_analysis"
        ],
        "before_tex": "b\\in B=\\{1,2,3\\}",
        "after_tex": "\\forall b\\in B\\ \\exists x\\in A:\\ f(x)=b",
        "relation": "implies",
        "rule": "mko_surjective_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "任取 b∈B。B 以列舉給出，所以 b=1、2 或 3。b=1 時見證 x=2；b=2 時見證 x=1；b=3 時見證 x=3（S04）。三種情況涵蓋 B 的全部元素，每種都有原像；依 ∃引入與 ∀引入，f 是滿射。",
          "en": "Take any b∈B. B is given by listing, so b=1, 2 or 3. For b=1 the witness is x=2; for b=2, x=1; for b=3, x=3 (S04). The three cases cover every element of B and each has a preimage; by ∃-introduction and ∀-introduction, f is surjective."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "S04",
            "exists_intro",
            "case_analysis",
            "roster_membership",
            "forall_intro"
          ],
          "explanation": {
            "zh-Hant": "需要 B 的每個元素都檢查到；每個 b 只需一個見證，不需要唯一。",
            "en": "Every element of B must be checked; each b needs one witness, not a unique one."
          }
        },
        "leaf_basis": "exists_intro + case_analysis + roster_membership + forall_intro"
      },
      {
        "id": "S06",
        "uses": [
          "S02",
          "S05",
          "L_surj_range"
        ],
        "before_tex": "f[A]=\\{1,2,3\\}=B",
        "after_tex": "f\\ \\text{surjective}",
        "relation": "theorem_application",
        "rule": "L_surj_range",
        "conditions": [],
        "explanation": {
          "zh-Hant": "第二條路線：依引理 L_surj_range，f 是滿射當且僅當 f[A]=B。S02 得 f[A]={1,2,3}，正是 B，所以 f 是滿射，與 S05 的逐點檢查一致。",
          "en": "A second route: by Lemma L_surj_range, f is surjective exactly when f[A]=B. S02 gives f[A]={1,2,3}, which is B, so f is surjective, in agreement with the pointwise check of S05."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_surj_range",
            "S02"
          ],
          "explanation": {
            "zh-Hant": "引理兩向在 S06.1、S06.2 證明；這條路線不依賴 S05。",
            "en": "Both directions of the lemma are proved in S06.1 and S06.2; this route does not rely on S05."
          }
        },
        "leaf_basis": "image_preimage_def + set_extensionality + mko_surjective_def"
      },
      {
        "id": "S06.1",
        "uses": [
          "mko_surjective_def",
          "image_preimage_def",
          "L_range_sub",
          "set_extensionality"
        ],
        "before_tex": "f\\ \\text{surjective}",
        "after_tex": "f[A]=B",
        "relation": "implies",
        "rule": "set_extensionality",
        "conditions": [],
        "explanation": {
          "zh-Hant": "⇒：設 f 滿射。任取 b∈B，有 x∈A 使 f(x)=b，所以 b∈f[A]，得 B⊆f[A]。另由 L_range_sub，f[A]⊆B。兩個包含合起來，依集合相等 f[A]=B。",
          "en": "⇒: let f be surjective. For any b∈B there is x∈A with f(x)=b, so b∈f[A], giving B⊆f[A]. Also f[A]⊆B by L_range_sub. The two inclusions together give f[A]=B by set equality."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "mko_surjective_def",
            "L_range_sub",
            "set_extensionality"
          ],
          "explanation": {
            "zh-Hant": "這是引理的「⇒」方向；兩個包含缺一不可。",
            "en": "This is the '⇒' direction of the lemma; neither inclusion may be dropped."
          }
        },
        "leaf_basis": "mko_surjective_def + image_preimage_def + set_extensionality"
      },
      {
        "id": "S06.2",
        "uses": [
          "image_preimage_def",
          "mko_surjective_def"
        ],
        "before_tex": "f[A]=B",
        "after_tex": "f\\ \\text{surjective}",
        "relation": "implies",
        "rule": "image_preimage_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "⇐：設 f[A]=B。任取 b∈B，則 b∈f[A]，依像的定義有 x∈A 使 f(x)=b。b 是任意的，所以 f 是滿射。S06.1 與 S06.2 證得引理 L_surj_range。",
          "en": "⇐: assume f[A]=B. For any b∈B, b∈f[A], so by the definition of image there is x∈A with f(x)=b. Since b is arbitrary, f is surjective. S06.1 and S06.2 prove Lemma L_surj_range."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "image_preimage_def",
            "forall_intro"
          ],
          "explanation": {
            "zh-Hant": "b 是任意的，依 ∀引入得到對每個 b 的結論。",
            "en": "b is arbitrary, so ∀-introduction gives the conclusion for every b."
          }
        },
        "leaf_basis": "image_preimage_def + forall_intro + mko_surjective_def"
      },
      {
        "id": "S07",
        "uses": [
          "S01",
          "S04",
          "S05",
          "injective_surjective_def"
        ],
        "before_tex": "f(1)=f(4)=2,\\ 1\\neq 4",
        "after_tex": "f\\ \\text{not injective, still surjective}",
        "relation": "implies",
        "rule": "injective_surjective_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "f(1)=f(4)=2 而 1≠4（N5），所以 f 不是單射；同樣 f(2)=f(5)=1。但 S05 已證 f 是滿射。MKO 敘述明示：滿射不要求原像唯一；多個輸入映到同一目標不會破壞滿射。",
          "en": "f(1)=f(4)=2 while 1≠4 (N5), so f is not injective; likewise f(2)=f(5)=1. Yet S05 proved f surjective. The MKO states that surjectivity does not require a unique preimage; several inputs mapping to the same target do not break surjectivity."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "injective_surjective_def",
            "S05"
          ],
          "explanation": {
            "zh-Hant": "一個碰撞就否定單射；滿射的結論來自 S05，不受影響。",
            "en": "One collision refutes injectivity; the surjectivity verdict comes from S05 and is unaffected."
          }
        },
        "leaf_basis": "injective_surjective_def + numeric_evaluation"
      },
      {
        "id": "S08",
        "uses": [
          "S04",
          "G3",
          "least_element"
        ],
        "before_tex": "f^{-1}(\\{2\\})=\\{1,4\\}",
        "after_tex": "\\text{first preimage of}\\ 2=\\min\\{1,4\\}=1",
        "relation": "implies",
        "rule": "least_element",
        "conditions": [
          "f^{-1}(\\{2\\})\\neq\\varnothing"
        ],
        "explanation": {
          "zh-Hant": "MKO 第二段：首個原像指有限整數資料中數值最小的原像。t=2 的原像集合 {1,4} 非空，最小元素是 1（N2），所以首個原像是 1。它來自完整的原像集合，不是表中第一個碰到的列。",
          "en": "MKO paragraph two: the first preimage is the numerically least preimage in the finite integer data. The preimage set of t=2 is {1,4}, which is nonempty with least element 1 (N2), so the first preimage is 1. It comes from the complete preimage set, not from the first row met in the table."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "least_element",
            "S04"
          ],
          "explanation": {
            "zh-Hant": "需要原像集合完整（S04 檢查全部輸入）且非空。",
            "en": "The preimage set must be complete (S04 checked every input) and nonempty."
          }
        },
        "leaf_basis": "least_element + order_basics + numeric_evaluation"
      },
      {
        "id": "S09",
        "uses": [
          "S02",
          "G3",
          "table_function",
          "subset_def"
        ],
        "before_tex": "f[A]=\\{1,2,3\\},\\ B2=\\{1,2,3,4\\}",
        "after_tex": "f[A]\\subseteq B2,\\ \\text{so}\\ f_2:A\\to B2\\ \\text{is a total function}",
        "relation": "implies",
        "rule": "table_function",
        "conditions": [],
        "explanation": {
          "zh-Hant": "MKO 假設 a2：更換陪域時，新陪域必須包含全部既有輸出，同一份表才仍是合法總函數。輸出 1、2、3 都在 B2 中，所以同一張表定義總函數 f₂:A→B2。",
          "en": "MKO assumption a2: a replacement codomain must contain every existing output for the same table to remain a valid total function. The outputs 1, 2, 3 all lie in B2, so the same table defines a total function f₂:A→B2."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "table_function",
            "subset_def"
          ],
          "explanation": {
            "zh-Hant": "合法性只要求 f[A]⊆B2；它不涉及滿射。",
            "en": "Legitimacy only requires f[A]⊆B2; it says nothing about surjectivity."
          }
        },
        "leaf_basis": "table_function + subset_def"
      },
      {
        "id": "S10",
        "uses": [
          "S09",
          "S02",
          "L_surj_range"
        ],
        "before_tex": "B2\\setminus f[A]",
        "after_tex": "\\{4\\}\\neq\\varnothing,\\ f_2^{-1}(\\{4\\})=\\varnothing,\\ f_2\\ \\text{not surjective}",
        "relation": "implies",
        "rule": "L_surj_range",
        "conditions": [],
        "explanation": {
          "zh-Hant": "未覆蓋的目標是 B2∖f[A]={4}：五個輸出 2、1、3、2、1 都不等於 4（N3），所以 4 沒有原像，首個原像「不存在」。f₂[A]={1,2,3}≠B2，依 L_surj_range，f₂ 不是滿射。同一張輸出表，換了陪域，滿射性就改變（MKO 第三段）。",
          "en": "The uncovered targets are B2∖f[A]={4}: none of the five outputs 2, 1, 3, 2, 1 equals 4 (N3), so 4 has no preimage and its first preimage is 'none'. f₂[A]={1,2,3}≠B2, so by L_surj_range f₂ is not surjective. The same output table with a different codomain changes surjectivity (MKO paragraph three)."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_surj_range",
            "S09",
            "numeric_evaluation"
          ],
          "explanation": {
            "zh-Hant": "一個未覆蓋目標就足以否定滿射（N6：|B2|−|f[A]|=1）。",
            "en": "One uncovered target suffices to refute surjectivity (N6: |B2|−|f[A]|=1)."
          }
        },
        "leaf_basis": "image_preimage_def + set_operations_def + numeric_evaluation"
      },
      {
        "id": "S11",
        "uses": [
          "S01",
          "G3",
          "table_function"
        ],
        "before_tex": "f(3)=3,\\ B3=\\{1,2\\}",
        "after_tex": "3\\notin B3,\\ \\text{so the table is not a function}\\ A\\to B3",
        "relation": "implies",
        "rule": "table_function",
        "conditions": [],
        "explanation": {
          "zh-Hant": "若把陪域換成 B3={1,2}：f(3)=3 而 3∉B3（N4），違反「輸出在陪域中」的條件，所以這張表不是 A→B3 的總函數。不能為了讓值域「等於」陪域而丟掉仍出現的輸出 3；對 B3 根本不能問滿射。",
          "en": "If the codomain is replaced by B3={1,2}: f(3)=3 while 3∉B3 (N4), violating 'outputs lie in the codomain', so the table is not a total function A→B3. One may not drop the output 3, which still occurs, just to make the range 'equal' the codomain; surjectivity onto B3 cannot even be asked."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "table_function"
          ],
          "explanation": {
            "zh-Hant": "一個落在 B3 之外的輸出就足以否定合法性。",
            "en": "One output outside B3 suffices to refute legitimacy."
          }
        },
        "leaf_basis": "table_function + roster_membership + numeric_evaluation"
      },
      {
        "id": "S12",
        "uses": [
          "G3",
          "mko_surjective_def",
          "empty_set_def",
          "forall_intro"
        ],
        "before_tex": "\\varnothing\\to\\varnothing",
        "after_tex": "\\text{surjective}",
        "relation": "implies",
        "rule": "forall_intro",
        "conditions": [],
        "explanation": {
          "zh-Hant": "空函數 ∅→∅：滿射條件是 ∀b∈∅ ∃x∈∅ f(x)=b。任取 b：b∈∅ 為假，蘊涵為真；依 ∀引入，條件成立，所以 ∅→∅ 是滿射（MKO 第三段）。",
          "en": "The empty function ∅→∅: the surjectivity condition is ∀b∈∅ ∃x∈∅ f(x)=b. For any b, b∈∅ is false and the implication is true; by ∀-introduction the condition holds, so ∅→∅ is surjective (MKO paragraph three)."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "empty_set_def",
            "forall_intro"
          ],
          "explanation": {
            "zh-Hant": "空真：陪域沒有元素需要被覆蓋。",
            "en": "Vacuous truth: the codomain has no element that needs covering."
          }
        },
        "leaf_basis": "empty_set_def + forall_intro + mko_surjective_def"
      },
      {
        "id": "S13",
        "uses": [
          "G3",
          "mko_surjective_def",
          "empty_set_def",
          "quantifier_negation"
        ],
        "before_tex": "\\varnothing\\to\\{7\\}",
        "after_tex": "\\neg\\exists x\\in\\varnothing:\\ f(x)=7,\\ \\text{not surjective}",
        "relation": "implies",
        "rule": "quantifier_negation",
        "conditions": [],
        "explanation": {
          "zh-Hant": "空函數 ∅→{7}：7∈{7} 需要某個 x∈∅ 使 f(x)=7，但 ∅ 沒有元素，所以 ¬∃x∈∅ f(x)=7。7 是未覆蓋目標，依量詞否定律，∀b∈{7} ∃x 的條件失敗，∅→{7} 不是滿射。",
          "en": "The empty function ∅→{7}: 7∈{7} would need some x∈∅ with f(x)=7, but ∅ has no elements, so ¬∃x∈∅ f(x)=7. 7 is an uncovered target, so by quantifier negation the condition ∀b∈{7} ∃x fails, and ∅→{7} is not surjective."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "empty_set_def",
            "quantifier_negation"
          ],
          "explanation": {
            "zh-Hant": "一個未覆蓋目標就足以否定；與 S12 的差別在陪域是否為空。",
            "en": "One uncovered target suffices; the difference from S12 is whether the codomain is empty."
          }
        },
        "leaf_basis": "empty_set_def + quantifier_negation + mko_surjective_def"
      },
      {
        "id": "S14",
        "uses": [
          "S05",
          "S06",
          "S07",
          "S08",
          "S10",
          "S11",
          "S12",
          "S13"
        ],
        "before_tex": "\\text{S01 to S13}",
        "after_tex": "f\\ \\text{surjective};\\ f_2\\ \\text{not};\\ B3\\ \\text{illegal};\\ \\varnothing\\to\\varnothing\\ \\text{surjective};\\ \\varnothing\\to\\{7\\}\\ \\text{not}",
        "relation": "implies",
        "rule": "and_intro_elim",
        "conditions": [],
        "explanation": {
          "zh-Hant": "彙整：f:A→B 是滿射，f[A]=B，雖然不是單射；t=2 的首個原像是 1（S05 到 S08）。換成 B2 合法但不滿射，4 未覆蓋（S09、S10）；換成 B3 不合法（S11）。∅→∅ 是滿射，∅→{7} 不是（S12、S13）。",
          "en": "Summary: f:A→B is surjective with f[A]=B, though not injective; the first preimage of t=2 is 1 (S05 to S08). Changing to B2 is legitimate but not surjective, with 4 uncovered (S09, S10); changing to B3 is illegitimate (S11). ∅→∅ is surjective and ∅→{7} is not (S12, S13)."
        },
        "reverse_audit": {
          "kind": "sufficient_goal_reduction",
          "required_ids": [
            "S05",
            "S06",
            "S08",
            "S10",
            "S11",
            "S12",
            "S13",
            "and_intro_elim"
          ],
          "explanation": {
            "zh-Hant": "目標 G：題目各項判定。足夠條件 H：所列各步的結論；H⇒G 只是合取，H 由 G1 到 G3 正向證成，沒有把 G 當作前提。",
            "en": "Goal G: the verdicts the task asks for. Sufficient condition H: the conclusions of the listed steps; H⇒G is just conjunction, H is proved forwards from G1 to G3, and G is never used as a premise."
          }
        },
        "leaf_basis": "and_intro_elim"
      }
    ],
    "result": {
      "zh-Hant": "f:(1,2),(2,1),(3,3),(4,2),(5,1) 是總函數 A→B，f[A]={1,2,3}=B，所以 f 是滿射；它不是單射（f(1)=f(4)=2），但多個原像不影響滿射。t=2 的原像是 {1,4}，首個原像是 1。同一張表換成陪域 B2={1,2,3,4} 仍合法，但 4 沒有原像，不是滿射；換成 B3={1,2} 不合法，因為 f(3)=3∉B3。∅→∅ 是滿射，∅→{7} 不是。",
      "en": "f: (1,2),(2,1),(3,3),(4,2),(5,1) is a total function A→B with f[A]={1,2,3}=B, so f is surjective; it is not injective (f(1)=f(4)=2), but several preimages do not affect surjectivity. The preimages of t=2 are {1,4}, and the first is 1. With codomain B2={1,2,3,4} the same table is still legitimate but 4 has no preimage, so it is not surjective; with B3={1,2} it is illegitimate, because f(3)=3∉B3. ∅→∅ is surjective and ∅→{7} is not."
    },
    "negative_controls": [
      {
        "claim": {
          "zh-Hant": "f 不是滿射，因為 2 有兩個原像 1 與 4",
          "en": "f is not surjective, because 2 has two preimages, 1 and 4"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "滿射只要求每個目標至少一個原像；1、2、3 都有原像。",
          "en": "Surjectivity only requires at least one preimage per target; 1, 2 and 3 all have one."
        }
      },
      {
        "claim": {
          "zh-Hant": "f₂:A→{1,2,3,4} 是滿射，因為它的值域 {1,2,3} 就是陪域",
          "en": "f₂:A→{1,2,3,4} is surjective, because its range {1,2,3} is the codomain"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "宣告陪域是 B2={1,2,3,4}，4 沒有原像。",
          "en": "The declared codomain is B2={1,2,3,4}, and 4 has no preimage."
        }
      },
      {
        "claim": {
          "zh-Hant": "把陪域改成 {1,2} 後，f 成為滿射",
          "en": "After changing the codomain to {1,2}, f becomes surjective"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "f(3)=3∉{1,2}，這張表不再是總函數，滿射問題不適用。",
          "en": "f(3)=3∉{1,2}, so the table is no longer a total function and the surjectivity question does not apply."
        }
      },
      {
        "claim": {
          "zh-Hant": "空函數 ∅→{7} 是滿射，因為找不到反例",
          "en": "The empty function ∅→{7} is surjective, since no counterexample can be found"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "7 需要一個 x∈∅ 作原像，但 ∅ 沒有元素；7 本身就是未覆蓋目標。",
          "en": "7 needs some x∈∅ as a preimage, but ∅ has no elements; 7 itself is an uncovered target."
        }
      },
      {
        "claim": {
          "zh-Hant": "t=2 的首個原像是 4",
          "en": "The first preimage of t=2 is 4"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "原像集合是 {1,4}，數值最小的是 1。",
          "en": "The preimage set is {1,4}, and its numerically least element is 1."
        }
      }
    ],
    "status": "candidate",
    "gaps": [],
    "verification": {
      "structure": "checked_local_script",
      "mathematics": "candidate_argument",
      "formalization": "not_formalized"
    },
    "rule_glossary": [
      {
        "id": "function_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "函數：f:A→B 對每個 a∈A 指定恰好一個 f(a)∈B。兩函數相等 ⇔ 定義域、對應域相同且對每個 a 都有相同值。",
          "en": "Function: f:A→B assigns to each a∈A exactly one f(a)∈B. Two functions are equal ⇔ they have the same domain and codomain and agree at every a."
        }
      },
      {
        "id": "image_preimage_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "像與原像：f(S)={f(a) ∣ a∈S}；f⁻¹(T)={a∈A ∣ f(a)∈T}。原像記號不預設 f 有反函數。",
          "en": "Image and preimage: f(S)={f(a) ∣ a∈S}; f⁻¹(T)={a∈A ∣ f(a)∈T}. The preimage notation does not presuppose that f has an inverse."
        }
      },
      {
        "id": "set_extensionality",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "集合相等：A=B 當且僅當 A⊆B 且 B⊆A，即兩者有相同元素。",
          "en": "Set equality: A=B if and only if A⊆B and B⊆A, i.e. they have the same elements."
        }
      },
      {
        "id": "exists_intro",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "∃引入：若找到 a∈D 使 P(a) 成立，則 ∃x∈D, P(x)。",
          "en": "∃-introduction: if some a∈D satisfies P(a), then ∃x∈D, P(x)."
        }
      },
      {
        "id": "numeric_evaluation",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "明確整數或有理數算式的精確求值；可以獨立重算。",
          "en": "Exact evaluation of an explicit integer or rational expression; independently recomputable."
        }
      },
      {
        "id": "subset_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "子集：A⊆B 表示 A 的每個元素都是 B 的元素，即 ∀x (x∈A⇒x∈B)。",
          "en": "Subset: A⊆B means every element of A is an element of B, i.e. ∀x (x∈A⇒x∈B)."
        }
      },
      {
        "id": "exists_elim",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "∃消去：由 ∃x∈D, P(x)，可取一個新名字 a 表示某個滿足 P(a) 的元素；只要最後結論不含 a，就可用 a 推理。",
          "en": "∃-elimination: from ∃x∈D, P(x) we may name some element a with P(a) by a fresh name; reasoning with a is allowed as long as the final conclusion does not mention a."
        }
      },
      {
        "id": "case_analysis",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "分情況論證：若 P∨Q 成立，且 P⇒R、Q⇒R 都已證，則 R 成立。所有情況必須涵蓋全部可能。",
          "en": "Proof by cases: if P∨Q holds and both P⇒R and Q⇒R are proved, then R holds. The cases must cover every possibility."
        }
      },
      {
        "id": "forall_intro",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "∀引入（全稱推廣）：若某命題對一個「任意的」元素 x 證成，而證明沒有對 x 加任何額外假設，則它對論域中所有 x 成立。",
          "en": "∀-introduction (generalization): if a statement is proved for an arbitrary element x, with no extra assumption on x, it holds for every x in the domain."
        }
      },
      {
        "id": "injective_surjective_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "單射：f(a)=f(a′) ⇒ a=a′。滿射：每個 b∈B 都有 a∈A 使 f(a)=b。雙射：既單又滿，此時有唯一反函數 f⁻¹ 使 f⁻¹∘f=id_A、f∘f⁻¹=id_B。",
          "en": "Injective: f(a)=f(a′) ⇒ a=a′. Surjective: every b∈B has some a∈A with f(a)=b. Bijective: both; then there is a unique inverse f⁻¹ with f⁻¹∘f=id_A and f∘f⁻¹=id_B."
        }
      },
      {
        "id": "order_basics",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "實數的序：任兩數恰有 u<v、u=v、u>v 之一；u<v 且 v<w 推出 u<w；u<v 推出 u+w<v+w；u<v 且 w>0 推出 uw<vw；u<v 且 w<0 推出 uw>vw。",
          "en": "Order of the reals: exactly one of u<v, u=v, u>v holds; u<v and v<w give u<w; u<v gives u+w<v+w; u<v and w>0 give uw<vw; u<v and w<0 give uw>vw."
        }
      },
      {
        "id": "set_operations_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "集合運算：x∈A∪B ⇔ x∈A 或 x∈B；x∈A∩B ⇔ x∈A 且 x∈B；x∈A∖B ⇔ x∈A 且 x∉B；在全集 U 中 Aᶜ=U∖A。",
          "en": "Set operations: x∈A∪B ⇔ x∈A or x∈B; x∈A∩B ⇔ x∈A and x∈B; x∈A∖B ⇔ x∈A and x∉B; in a universe U, Aᶜ=U∖A."
        }
      },
      {
        "id": "quantifier_negation",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "量詞否定：¬(∀x, P(x)) 等價於 ∃x, ¬P(x)；¬(∃x, P(x)) 等價於 ∀x, ¬P(x)。",
          "en": "Negating quantifiers: ¬(∀x, P(x)) is equivalent to ∃x, ¬P(x), and ¬(∃x, P(x)) is equivalent to ∀x, ¬P(x)."
        }
      },
      {
        "id": "and_intro_elim",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "合取：由 P 與 Q 得 P∧Q；由 P∧Q 可分別得 P 與 Q。",
          "en": "Conjunction: from P and Q infer P∧Q; from P∧Q infer P and infer Q."
        }
      },
      {
        "id": "mko_surjective_def",
        "kind": "cited",
        "source": {
          "mko_id": "mko-surjective",
          "sha256": "9e23f524f4cd5d7a32f8fed322c2a1717b66148676cc519dc1288a1346303feb",
          "commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f"
        },
        "statement": {
          "zh-Hant": "總函數 f:A→B 是滿射，當且僅當對每個 b∈B 都存在 x∈A 使 f(x)=b，也就是實際值域 f[A] 等於宣告陪域 B。滿射不要求原像唯一。",
          "en": "A total function f:A→B is surjective exactly when, for every b∈B, there exists x∈A with f(x)=b; equivalently, the attained range f[A] equals the declared codomain B. Surjectivity does not require a unique preimage."
        }
      },
      {
        "id": "table_function",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "有限表格（列為 (x,y)）定義總函數 A→B，當且僅當：每列 x∈A、y∈B；每個 x∈A 至少出現在一列；同一 x 的各列輸出相同。",
          "en": "A finite table of rows (x,y) defines a total function A→B exactly when every row has x∈A and y∈B, every x∈A occurs in at least one row, and rows with the same x have the same output."
        }
      },
      {
        "id": "roster_membership",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "列舉集合的成員關係：對以列舉給出的有限集合 S={s_i ∣ 1≤i≤n}，z∈S 當且僅當存在 i 使 z=s_i。",
          "en": "Membership in a listed set: for a finite set given by listing, S={s_i ∣ 1≤i≤n}, z∈S exactly when z=s_i for some i."
        }
      },
      {
        "id": "empty_set_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "空集合：對每個 x，x∉∅。",
          "en": "Empty set: for every x, x∉∅."
        }
      },
      {
        "id": "least_element",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "非空有限整數集合有唯一的最小元素（逐一比較可得）。MKO 的「首個原像」指原像集合的數值最小元素；原像集合為空時答「不存在」。",
          "en": "A nonempty finite set of integers has a unique least element (found by comparing elements). The MKO's 'first preimage' is the numerically least element of the preimage set; if the preimage set is empty the answer is 'none'."
        }
      },
      {
        "id": "L_range_sub",
        "kind": "lemma",
        "proved_in": [
          "S03.1"
        ],
        "statement": {
          "zh-Hant": "對任何總函數 f:A→B，f[A]⊆B。",
          "en": "For every total function f:A→B, f[A]⊆B."
        }
      },
      {
        "id": "L_surj_range",
        "kind": "lemma",
        "proved_in": [
          "S06.1",
          "S06.2"
        ],
        "statement": {
          "zh-Hant": "對總函數 f:A→B：f 是滿射 ⇔ f[A]=B。",
          "en": "For a total function f:A→B: f is surjective ⇔ f[A]=B."
        }
      }
    ],
    "revision_log": [],
    "numeric_checks": [
      {
        "id": "N1",
        "step": "S04",
        "lhs": "2+2+1",
        "rhs": "5"
      },
      {
        "id": "N2",
        "step": "S08",
        "lhs": "min(1,4)",
        "rhs": "1"
      },
      {
        "id": "N3",
        "step": "S10",
        "lhs": "(2-4)*(1-4)*(3-4)*(2-4)*(1-4)",
        "relation": "!=",
        "rhs": "0"
      },
      {
        "id": "N4",
        "step": "S11",
        "lhs": "(3-1)*(3-2)",
        "relation": "!=",
        "rhs": "0"
      },
      {
        "id": "N5",
        "step": "S07",
        "lhs": "1-4",
        "relation": "!=",
        "rhs": "0"
      },
      {
        "id": "N6",
        "step": "S10",
        "lhs": "4-3",
        "rhs": "1"
      }
    ]
  },
  "presentation": {
    "md_scope": {
      "zh-Hant": "在 MKO 的範圍內工作：明示定義域、陪域與有限總函數表。證明兩個一般小引理（f[A]⊆B；f 滿射 ⇔ f[A]=B），以完整核對判定本例，並示範陪域變更的合法性。結果只針對這張表，不外推到其他函數；不改動 canonical MKO 或英文 edition。",
      "en": "Works inside the MKO's scope: an explicit domain, codomain and finite total function table. Proves two small general lemmas (f[A]⊆B; f surjective ⇔ f[A]=B), decides this example by a complete check, and shows when a change of codomain is legitimate. Results concern this table only and are not extended to other functions; the canonical MKO and its English edition are not changed."
    },
    "md_symbols": [
      [
        "f[A]",
        "實際值域 {f(x) ∣ x∈A}",
        "the attained range {f(x) ∣ x∈A}"
      ],
      [
        "B,\\ B2,\\ B3",
        "宣告陪域與兩個替換陪域",
        "the declared codomain and two replacement codomains"
      ],
      [
        "f^{-1}(\\{t\\})",
        "t 的原像集合 {x∈A ∣ f(x)=t}",
        "the preimage set {x∈A ∣ f(x)=t} of t"
      ],
      [
        "B\\setminus f[A]",
        "未覆蓋的目標",
        "the uncovered targets"
      ],
      [
        "f_2",
        "同一張表、陪域為 B2 的函數",
        "the same table with codomain B2"
      ]
    ],
    "md_error_controls": [
      {
        "title": "值域不會自動等於陪域 / The range is not automatically the codomain",
        "zh": "MKO 指出的誤解之一是把值域自動當成陪域。同一張表的值域都是 {1,2,3}，陪域為 B 時滿射，陪域為 B2={1,2,3,4} 時不滿射（S10）。滿射是值域與「宣告」陪域的比較，必須先明示陪域。",
        "en": "One misconception named by the MKO is taking the range to be the codomain automatically. The same table always has range {1,2,3}; with codomain B it is surjective, with codomain B2={1,2,3,4} it is not (S10). Surjectivity compares the range with the declared codomain, so the codomain must be stated first."
      },
      {
        "title": "多個原像不否定滿射 / Several preimages do not refute surjectivity",
        "zh": "MKO 的另一個誤解是以多個原像否定滿射。2 有兩個原像 1、4，1 也有兩個原像 2、5；這使 f 不是單射（S07），但滿射只要求每個目標至少一個原像（S05）。",
        "en": "Another misconception identified in the MKO is refuting surjectivity with several preimages. 2 has two preimages, 1 and 4, and 1 has two, 2 and 5; this makes f non-injective (S07), but surjectivity only requires at least one preimage per target (S05)."
      },
      {
        "title": "換陪域必須保留全部輸出 / A new codomain must keep every output",
        "zh": "MKO 假設 a2：替換陪域須包含全部既有輸出。B3={1,2} 丟掉了仍出現的輸出 3，所以這張表不是 A→B3 的函數（S11）；不能用縮小陪域的方式「讓它變成滿射」。",
        "en": "MKO assumption a2: a replacement codomain must contain every existing output. B3={1,2} drops the output 3, which still occurs, so the table is not a function A→B3 (S11); shrinking the codomain cannot be used to 'make it surjective'."
      }
    ],
    "md_open_items": [
      {
        "zh-Hant": "N3、N4 以「差的乘積非零」表示某數不等於每一個列出的值（零乘積性質），只是對這些具體數字的重算。",
        "en": "N3 and N4 encode 'a number equals none of the listed values' as a nonzero product of differences (zero-product property); they only recompute these particular numbers."
      },
      {
        "zh-Hant": "本稿不證明「有限集合間的滿射須 |A|≥|B|」等計數結論，也不處理無限定義域。",
        "en": "This guide does not prove counting facts such as 'a surjection between finite sets needs |A|≥|B|', and does not treat infinite domains."
      }
    ]
  },
  "revision": {
    "id": "production-20261019-adopted-96",
    "source_commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f",
    "adopted_source_sha256": "5f960a2bdf50cfb476490d2df6deab5e3ce1ee98b23eb33287f6373c0377e4af",
    "original_source_sha256": "5f960a2bdf50cfb476490d2df6deab5e3ce1ee98b23eb33287f6373c0377e4af",
    "owner_adopted": true,
    "bilingual_sync": "complete_source_bound",
    "formal_Lean": "NOT_RUN",
    "independent_AI_concurrence": "NOT_MEASURED",
    "issue_ids": [],
    "scope": "Owner-adopted natural-language teaching guide; not a formal proof, canonical MKO rewrite or evidence-status promotion."
  }
}
