{
  "schema_version": "ocme-derivation-reader-v1",
  "guide_id": "derivation-mko-injective-01",
  "mko_id": "mko-injective",
  "title": {
    "zh-Hant": "單射與不同輸入的辨識：函數表的資格、碰撞見證與纖維",
    "en": "Injectivity and distinct inputs: table qualification, collision witnesses and fibers"
  },
  "contract": {
    "schema_version": "ocme-derivation-guide-v0.1",
    "guide_id": "derivation-mko-injective-01",
    "source": {
      "mko_id": "mko-injective",
      "commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f",
      "sha256": "3075724e6925d827d24d227d1a1ae7ef1d5fb63e41ca8cbf87adcb12c8c76941",
      "english_sha256": "9fe4b6d40c7d49c6b6b3428ebeba9f5e119a339a59cb8c0838fc01d5e17f69bc"
    },
    "mode": "definition_walkthrough",
    "audience_prerequisites": [
      "function_def",
      "image_preimage_def",
      "contrapositive",
      "quantifier_negation",
      "numeric_evaluation",
      "table_function"
    ],
    "goal": {
      "zh-Hant": "設 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} 是否單射；並說明空定義域的情形。",
      "en": "Let A={1,2,3,4}, B={1,2,3,4,5,6}, with function tables 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). Decide which tables are total functions A→B; decide whether f and g are injective and list their fibers; find g's first collision in lexicographic order; decide whether g restricted to C={1,2} is injective; and treat the empty domain."
    },
    "givens": [
      {
        "id": "G1",
        "statement": {
          "zh-Hant": "A={1,2,3,4}，B={1,2,3,4,5,6}。",
          "en": "A={1,2,3,4}, B={1,2,3,4,5,6}."
        }
      },
      {
        "id": "G2",
        "statement": {
          "zh-Hant": "函數表（每列為 (輸入, 輸出)）：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)。",
          "en": "Function tables (each row is (input, output)): 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)."
        }
      },
      {
        "id": "G3",
        "statement": {
          "zh-Hant": "C={1,2}⊆A；另考慮空定義域的函數 f₀:∅→B。",
          "en": "C={1,2}⊆A; also consider the function f₀:∅→B with empty domain."
        }
      }
    ],
    "steps": [
      {
        "id": "S01",
        "uses": [
          "G1",
          "G2",
          "table_function"
        ],
        "before_tex": "f:\\ (1,4),(2,6),(3,1),(4,5)",
        "after_tex": "f:A\\to B\\ \\text{total};\\ f(1)=4,\\ f(2)=6,\\ f(3)=1,\\ f(4)=5",
        "relation": "implies",
        "rule": "table_function",
        "conditions": [],
        "explanation": {
          "zh-Hant": "MKO 第一段：先檢查表格在 A 上總定義。A 的四個輸入 1、2、3、4 各恰出現在一列，輸出 4、6、1、5 都在 B 中，沒有同一輸入配不同輸出。所以 f 是總函數 A→B。",
          "en": "MKO paragraph one: first check that the table is total on A. Each of the four inputs 1, 2, 3, 4 occurs in exactly one row, the outputs 4, 6, 1, 5 are in B, and no input is paired with two different outputs. So f is a total function A→B."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "table_function",
            "G1",
            "G2"
          ],
          "explanation": {
            "zh-Hant": "三個條件（輸入輸出在範圍內、每個輸入出現、輸出唯一）都要核對；單射問題只對通過這一步的表才有意義。",
            "en": "All three conditions (inputs and outputs in range, every input present, outputs unique) must be checked; injectivity only makes sense for tables that pass this step."
          }
        },
        "leaf_basis": "table_function + roster_membership"
      },
      {
        "id": "S02",
        "uses": [
          "mko_injective_def",
          "contrapositive"
        ],
        "before_tex": "\\forall x,y\\in A:\\ f(x)=f(y)\\Rightarrow x=y",
        "after_tex": "\\forall x,y\\in A:\\ x\\neq y\\Rightarrow f(x)\\neq f(y)",
        "relation": "equivalent",
        "rule": "contrapositive",
        "conditions": [],
        "explanation": {
          "zh-Hant": "依 MKO 的定義，單射是「f(x)=f(y) 蘊涵 x=y」。對每一對 x、y 取逆否命題，得「x≠y 蘊涵 f(x)≠f(y)」，即不同輸入有不同輸出。之後用這個形式逐對比較。",
          "en": "By the MKO's definition, injective means 'f(x)=f(y) implies x=y'. Taking the contrapositive for each pair x, y gives 'x≠y implies f(x)≠f(y)': distinct inputs have distinct outputs. This form is used for the pairwise comparison below."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "contrapositive"
          ],
          "explanation": {
            "zh-Hant": "命題與其逆否命題等價，對每一對都雙向成立。",
            "en": "A statement and its contrapositive are equivalent, both ways, for each pair."
          }
        },
        "leaf_basis": "mko_injective_def + contrapositive"
      },
      {
        "id": "S03",
        "uses": [
          "S02",
          "L_pairs_lt"
        ],
        "before_tex": "\\forall x,y\\in A:\\ x\\neq y\\Rightarrow f(x)\\neq f(y)",
        "after_tex": "\\forall x,y\\in A:\\ x<y\\Rightarrow f(x)\\neq f(y)",
        "relation": "equivalent",
        "rule": "L_pairs_lt",
        "conditions": [
          "A\\subseteq\\mathbb{Z}"
        ],
        "explanation": {
          "zh-Hant": "依引理 L_pairs_lt，只需比較 x<y 的輸入對；A 有 C(4,2)=6 個這樣的對（N2）。x=y 的情形不需比較，x>y 的情形與 y<x 重複。",
          "en": "By Lemma L_pairs_lt, only input pairs with x<y need comparing; A has C(4,2)=6 such pairs (N2). The case x=y needs no comparison, and the case x>y repeats the case y<x."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "L_pairs_lt"
          ],
          "explanation": {
            "zh-Hant": "引理兩向在 S03.1 證明。",
            "en": "Both directions of the lemma are proved in S03.1."
          }
        },
        "leaf_basis": "case_analysis + order_basics"
      },
      {
        "id": "S03.1",
        "uses": [
          "case_analysis",
          "order_basics"
        ],
        "before_tex": "\\forall x<y:\\ f(x)\\neq f(y)",
        "after_tex": "\\forall x\\neq y:\\ f(x)\\neq f(y)",
        "relation": "equivalent",
        "rule": "case_analysis",
        "conditions": [
          "A\\subseteq\\mathbb{Z}"
        ],
        "explanation": {
          "zh-Hant": "⇐：x<y 推出 x≠y，所以由右式得左式。⇒：設 x≠y。由序的三分律，x<y 或 y<x。若 x<y，直接得 f(x)≠f(y)；若 y<x，得 f(y)≠f(x)，而「≠」是對稱的。兩種情況涵蓋 x≠y 的全部可能。這證得引理 L_pairs_lt（配合 S02）。",
          "en": "⇐: x<y implies x≠y, so the right-hand form gives the left. ⇒: let x≠y. By trichotomy, x<y or y<x. If x<y, f(x)≠f(y) directly; if y<x, f(y)≠f(x), and '≠' is symmetric. The two cases cover every possibility with x≠y. This proves Lemma L_pairs_lt (together with S02)."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "case_analysis",
            "order_basics",
            "eq_refl_symm_trans"
          ],
          "explanation": {
            "zh-Hant": "兩向都有理由；需要 A 的元素可比較大小（整數標籤）。",
            "en": "Both directions have reasons; the elements of A must be comparable (integer labels)."
          }
        },
        "leaf_basis": "case_analysis + order_basics + eq_refl_symm_trans"
      },
      {
        "id": "S04",
        "uses": [
          "S01",
          "S03",
          "forall_intro"
        ],
        "before_tex": "(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)",
        "after_tex": "4\\neq 6,\\ 4\\neq 1,\\ 4\\neq 5,\\ 6\\neq 1,\\ 6\\neq 5,\\ 1\\neq 5;\\ f\\ \\text{injective}",
        "relation": "implies",
        "rule": "forall_intro",
        "conditions": [],
        "explanation": {
          "zh-Hant": "逐一比較六個輸入對的輸出：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 是單射。",
          "en": "Compare the outputs of the six input pairs: f(1)=4 differs from f(2)=6, f(3)=1 and f(4)=5; f(2)=6 differs from f(3)=1 and f(4)=5; f(3)=1 differs from f(4)=5. Every pair with x<y has different outputs (N1 checks this as a nonzero product of differences); this is a complete check of the finite A, so by S03 f is injective."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "S03",
            "case_analysis",
            "numeric_evaluation"
          ],
          "explanation": {
            "zh-Hant": "必須比較全部 6 對；漏掉一對就不能下結論。結論只關於 f，不外推到其他函數。",
            "en": "All 6 pairs must be compared; missing one would block the conclusion. The verdict concerns f only and is not extended to other functions."
          }
        },
        "leaf_basis": "case_analysis + roster_membership + numeric_evaluation + forall_intro"
      },
      {
        "id": "S05",
        "uses": [
          "S01",
          "image_preimage_def"
        ],
        "before_tex": "f^{-1}(\\{b\\})=\\{x\\in A\\mid f(x)=b\\},\\ b\\in B",
        "after_tex": "\\{3\\},\\ \\varnothing,\\ \\varnothing,\\ \\{1\\},\\ \\{4\\},\\ \\{2\\}\\quad(b=1,2,3,4,5,6)",
        "relation": "implies",
        "rule": "image_preimage_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "對 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），每個輸入恰屬於一個纖維。",
          "en": "List the fiber of each b in B: for b=1 only f(3)=1, so the fiber is {3}; for b=2 and 3 no input maps there, so the fibers are empty; b=4 gives {1}; b=5 gives {4}; b=6 gives {2}. Every fiber has at most one element; the fiber sizes sum to 1+0+0+1+1+1=4=|A| (N8), since every input lies in exactly one fiber."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "image_preimage_def",
            "S01"
          ],
          "explanation": {
            "zh-Hant": "需要對 B 的六個元素都列出；纖維大小總和等於 |A| 是一致性檢查。",
            "en": "All six elements of B must be listed; the fiber sizes summing to |A| is a consistency check."
          }
        },
        "leaf_basis": "image_preimage_def + roster_membership + numeric_evaluation"
      },
      {
        "id": "S06",
        "uses": [
          "S04",
          "S05",
          "L_fiber"
        ],
        "before_tex": "|f^{-1}(\\{b\\})|\\le 1\\ \\text{for all}\\ b\\in B",
        "after_tex": "f\\ \\text{injective}",
        "relation": "theorem_application",
        "rule": "L_fiber",
        "conditions": [],
        "explanation": {
          "zh-Hant": "依引理 L_fiber，「每個纖維至多一個元素」與單射等價。S05 的纖維都至多一個元素，所以由纖維也得到 f 單射，與 S04 的逐對比較一致。這正是 MKO 敘述中的纖維等價形式。",
          "en": "By Lemma L_fiber, 'every fiber has at most one element' is equivalent to injectivity. The fibers in S05 all have at most one element, so the fiber view also gives that f is injective, in agreement with the pairwise comparison of S04. This is the fiber form stated in the MKO."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_fiber",
            "S05"
          ],
          "explanation": {
            "zh-Hant": "引理在 S06.1、S06.2 證明；此步是第二條獨立路線，不依賴 S04。",
            "en": "The lemma is proved in S06.1 and S06.2; this step is a second, independent route that does not rely on S04."
          }
        },
        "leaf_basis": "image_preimage_def + eq_refl_symm_trans + mko_injective_def"
      },
      {
        "id": "S06.1",
        "uses": [
          "mko_injective_def",
          "image_preimage_def"
        ],
        "before_tex": "f\\ \\text{injective},\\ x,x'\\in f^{-1}(\\{b\\})",
        "after_tex": "x=x'",
        "relation": "implies",
        "rule": "mko_injective_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "⇒：設 f 單射，x、x′ 都在 b 的纖維中，則 f(x)=b=f(x′)，由等號的對稱與傳遞得 f(x)=f(x′)，單射給出 x=x′。所以纖維中任兩個元素相同，至多一個元素。",
          "en": "⇒: let f be injective and x, x′ both lie in the fiber of b. Then f(x)=b=f(x′), so f(x)=f(x′) by symmetry and transitivity of equality, and injectivity gives x=x′. So any two elements of the fiber coincide: it has at most one element."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "mko_injective_def",
            "image_preimage_def",
            "eq_refl_symm_trans"
          ],
          "explanation": {
            "zh-Hant": "這是引理的「⇒」方向；反向在 S06.2。",
            "en": "This is the '⇒' direction of the lemma; the converse is S06.2."
          }
        },
        "leaf_basis": "mko_injective_def + image_preimage_def + eq_refl_symm_trans"
      },
      {
        "id": "S06.2",
        "uses": [
          "image_preimage_def"
        ],
        "before_tex": "|f^{-1}(\\{b\\})|\\le 1\\ \\forall b,\\ f(x)=f(y)",
        "after_tex": "x=y",
        "relation": "implies",
        "rule": "image_preimage_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "⇐：設每個纖維至多一個元素，且 f(x)=f(y)。令 b=f(x)，則 x 與 y 都在 b 的纖維中；纖維至多一個元素，所以 x=y。這就是單射的定義。S06.1 與 S06.2 證得引理 L_fiber。",
          "en": "⇐: suppose every fiber has at most one element and f(x)=f(y). Let b=f(x); then x and y both lie in the fiber of b, which has at most one element, so x=y. This is the definition of injectivity. S06.1 and S06.2 prove Lemma L_fiber."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "image_preimage_def",
            "forall_intro"
          ],
          "explanation": {
            "zh-Hant": "x、y 是任意的，依 ∀引入得到對所有 x、y 的結論。",
            "en": "x and y are arbitrary, so ∀-introduction gives the conclusion for all x, y."
          }
        },
        "leaf_basis": "image_preimage_def + forall_intro + eq_refl_symm_trans"
      },
      {
        "id": "S07",
        "uses": [
          "S05",
          "S04",
          "injective_surjective_def"
        ],
        "before_tex": "f^{-1}(\\{2\\})=f^{-1}(\\{3\\})=\\varnothing",
        "after_tex": "f\\ \\text{injective but not surjective}",
        "relation": "implies",
        "rule": "injective_surjective_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "陪域元素 2 與 3 的纖維是空的，沒有原像，所以 f 不是滿射；但 f 仍是單射（S04、S06）。MKO 第二段：單射可以漏掉陪域的元素，纖維大小可以是零或一。",
          "en": "The codomain elements 2 and 3 have empty fibers and no preimage, so f is not surjective; yet f is still injective (S04, S06). MKO paragraph two: an injection may miss codomain elements, and fiber sizes may be zero or one."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "injective_surjective_def",
            "S05"
          ],
          "explanation": {
            "zh-Hant": "一個沒有原像的陪域元素就足以否定滿射；這不影響單射的判定。",
            "en": "One codomain element without a preimage suffices to refute surjectivity; this does not affect the verdict on injectivity."
          }
        },
        "leaf_basis": "injective_surjective_def + image_preimage_def"
      },
      {
        "id": "S08",
        "uses": [
          "G1",
          "G2",
          "table_function"
        ],
        "before_tex": "g:\\ (1,4),(2,6),(2,6),(3,4),(4,6)",
        "after_tex": "g:A\\to B\\ \\text{total};\\ g(1)=4,\\ g(2)=6,\\ g(3)=4,\\ g(4)=6",
        "relation": "implies",
        "rule": "table_function",
        "conditions": [],
        "explanation": {
          "zh-Hant": "g 的表中 (2,6) 列了兩次。兩列完全相同，只是同一個有序對的重複列出（MKO 第一段），不構成「同一輸入配不同輸出」。四個輸入各有唯一輸出，輸出都在 B 中，所以 g 是總函數 A→B。",
          "en": "The table of g lists (2,6) twice. The two rows are identical, a repeated listing of the same ordered pair (MKO paragraph one), not an input paired with different outputs. Each of the four inputs has a unique output in B, so g is a total function A→B."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "table_function"
          ],
          "explanation": {
            "zh-Hant": "重複列判定為無害，前提是兩列的輸出相同；若輸出不同，就像 h 一樣不是函數（S13）。",
            "en": "The repeated row is harmless only because its outputs agree; with different outputs the table would fail to be a function, as h does (S13)."
          }
        },
        "leaf_basis": "table_function + roster_membership"
      },
      {
        "id": "S09",
        "uses": [
          "S08",
          "mko_injective_def",
          "quantifier_negation"
        ],
        "before_tex": "g(1)=4=g(3),\\ 1\\neq 3",
        "after_tex": "g\\ \\text{not injective}",
        "relation": "implies",
        "rule": "quantifier_negation",
        "conditions": [],
        "explanation": {
          "zh-Hant": "單射的否定（量詞否定律加上 ¬(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 不是單射。",
          "en": "The negation of injectivity (quantifier negation together with ¬(P⇒Q) ⇔ P∧¬Q) is: there exist x, y∈A with g(x)=g(y) and x≠y. Take x=1 and y=3: g(1)=g(3)=4 (N3) while 1≠3. This collision witness alone shows that g is not injective."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "quantifier_negation",
            "exists_intro",
            "S08"
          ],
          "explanation": {
            "zh-Hant": "一個碰撞見證就夠；它必須是 A 中兩個不同輸入。",
            "en": "One collision witness suffices; it must consist of two different inputs from A."
          }
        },
        "leaf_basis": "quantifier_negation + exists_intro + mko_injective_def"
      },
      {
        "id": "S10",
        "uses": [
          "S08",
          "lex_order"
        ],
        "before_tex": "\\{(x,x')\\mid x<x',\\ g(x)=g(x')\\}",
        "after_tex": "\\{(1,3),(2,4)\\},\\ \\text{first}=(1,3)",
        "relation": "implies",
        "rule": "lex_order",
        "conditions": [],
        "explanation": {
          "zh-Hant": "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)。",
          "en": "MKO paragraph three: for the first finite collision take x<x′ and choose the first pair (x,x′) in lexicographic order. Compare the six pairs: (1,2): 4 and 6 differ; (1,3): 4=4, a collision; (1,4): 4 and 6 differ; (2,3): 6 and 4 differ; (2,4): 6=6, a collision; (3,4): 4 and 6 differ (N4, N5). The collision set is {(1,3),(2,4)}; since 1<2, the first pair in lexicographic order is (1,3)."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "lex_order",
            "S08",
            "numeric_evaluation"
          ],
          "explanation": {
            "zh-Hant": "本稿採完整比較全部 6 對、列出全部碰撞後取字典序最小的稽核方法。數學上也可按字典序檢查，在排除所有更早對後於第一個碰撞停下；任意找到一個碰撞而未排除更早對則不足。這不改本稿完整列舉的既定程序。",
            "en": "This guide's audit compares all 6 pairs, lists every collision and takes the lexicographically least. Mathematically, an ordered scan may instead stop at its first collision after excluding every earlier pair. Finding an arbitrary collision without excluding earlier ones is insufficient. The prescribed full enumeration is unchanged."
          }
        },
        "leaf_basis": "lex_order + case_analysis + numeric_evaluation"
      },
      {
        "id": "S11",
        "uses": [
          "S08",
          "image_preimage_def",
          "L_fiber"
        ],
        "before_tex": "g^{-1}(\\{b\\}),\\ b\\in B",
        "after_tex": "g^{-1}(\\{4\\})=\\{1,3\\},\\ g^{-1}(\\{6\\})=\\{2,4\\},\\ \\text{others}\\ \\varnothing",
        "relation": "implies",
        "rule": "image_preimage_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "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 的纖維對應一個碰撞。",
          "en": "The fibers of g: the fiber of 4 is {1,3}, the fiber of 6 is {2,4}, and the fibers of b=1, 2, 3, 5 are empty. The sizes sum to 0+0+0+2+0+2=4=|A| (N9). Two fibers have two elements, so by L_fiber g is again seen not to be injective; each fiber of size 2 corresponds to one collision."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "image_preimage_def",
            "L_fiber"
          ],
          "explanation": {
            "zh-Hant": "只需一個大小超過 1 的纖維就足以否定單射；完整列出用來對照 S10。",
            "en": "One fiber of size above 1 is enough to refute injectivity; the full list is for comparison with S10."
          }
        },
        "leaf_basis": "image_preimage_def + roster_membership + numeric_evaluation"
      },
      {
        "id": "S12",
        "uses": [
          "S08",
          "G3",
          "restriction_def",
          "L_pairs_lt"
        ],
        "before_tex": "g|_C,\\ C=\\{1,2\\}",
        "after_tex": "g|_C(1)=4\\neq 6=g|_C(2),\\ g|_C\\ \\text{injective}",
        "relation": "implies",
        "rule": "restriction_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "限制到 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 中。",
          "en": "Restrict to C={1,2}: g|_C(1)=4 and g|_C(2)=6. The only pair x<y in C is (1,2), and 4≠6 (N6), so by L_pairs_lt g|_C is injective. MKO paragraph three: after restriction only inputs in C are compared, so a non-injective function can have an injective restriction; both collisions (1,3) and (2,4) have at least one input outside C."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "restriction_def",
            "L_pairs_lt"
          ],
          "explanation": {
            "zh-Hant": "需要列全 C 中的輸入對（只有一對）；不宣稱 g 本身因此單射。",
            "en": "All input pairs in C must be listed (there is one); it is not claimed that g itself is therefore injective."
          }
        },
        "leaf_basis": "restriction_def + case_analysis + numeric_evaluation"
      },
      {
        "id": "S13",
        "uses": [
          "G2",
          "table_function"
        ],
        "before_tex": "h:\\ (2,6),\\ (2,5)",
        "after_tex": "h\\ \\text{is not a function}\\ A\\to B",
        "relation": "implies",
        "rule": "table_function",
        "conditions": [],
        "explanation": {
          "zh-Hant": "h 的表中輸入 2 出現在 (2,6) 與 (2,5) 兩列，輸出 6≠5（N7）。同一輸入配不同輸出，所以 h 不是函數（MKO 第一段）。單射是對總函數定義的性質，因此「h 是否單射」這個問題不適用；正確的判定是「不是函數」，而不是「不是單射」。",
          "en": "In the table of h the input 2 occurs in the rows (2,6) and (2,5), with outputs 6≠5 (N7). One input paired with different outputs means h is not a function (MKO paragraph one). Injectivity is defined for total functions, so the question whether h is injective does not apply; the correct verdict is 'not a function', not 'not injective'."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "table_function"
          ],
          "explanation": {
            "zh-Hant": "一個輸入有兩個不同輸出就足以否定函數資格。",
            "en": "One input with two different outputs suffices to refute function status."
          }
        },
        "leaf_basis": "table_function + numeric_evaluation"
      },
      {
        "id": "S14",
        "uses": [
          "G3",
          "mko_injective_def",
          "empty_set_def",
          "forall_intro"
        ],
        "before_tex": "f_0:\\varnothing\\to B",
        "after_tex": "f_0\\ \\text{injective}",
        "relation": "implies",
        "rule": "forall_intro",
        "conditions": [],
        "explanation": {
          "zh-Hant": "空定義域時，單射條件是 ∀x,y∈∅ (f₀(x)=f₀(y)⇒x=y)。任取 x：x∈∅ 為假，前件為假的蘊涵為真，所以條件對每個 x、y 都成立；依 ∀引入，f₀ 是單射（MKO 假設 a2：空定義域的單射條件為真）。",
          "en": "With empty domain, the injectivity condition is ∀x,y∈∅ (f₀(x)=f₀(y)⇒x=y). For any x, x∈∅ is false, and an implication with a false antecedent is true, so the condition holds for every x, y; by ∀-introduction f₀ is injective (MKO assumption a2: injectivity holds for an empty domain)."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "empty_set_def",
            "forall_intro"
          ],
          "explanation": {
            "zh-Hant": "空真：沒有輸入，所以沒有碰撞可以否定單射。",
            "en": "Vacuous truth: there are no inputs, so there is no collision to refute injectivity."
          }
        },
        "leaf_basis": "empty_set_def + forall_intro + mko_injective_def"
      },
      {
        "id": "S15",
        "uses": [
          "S01",
          "S04",
          "S07",
          "S08",
          "S09",
          "S10",
          "S12",
          "S13",
          "S14"
        ],
        "before_tex": "\\text{S01 to S14}",
        "after_tex": "f\\ \\text{injective};\\ g\\ \\text{not, first collision}\\ (1,3);\\ g|_C\\ \\text{injective};\\ h\\ \\text{not a function};\\ f_0\\ \\text{injective}",
        "relation": "implies",
        "rule": "and_intro_elim",
        "conditions": [],
        "explanation": {
          "zh-Hant": "彙整：f 是總函數且單射，纖維都至多一個元素，但 2、3 沒有原像（S04 到 S07）；g 是總函數（重複列無害），不單射，碰撞為 (1,3)、(2,4)，首碰撞 (1,3)（S08 到 S11）；g|_C 單射（S12）；h 不是函數（S13）；f₀:∅→B 單射（S14）。",
          "en": "Summary: f is a total function and injective, with every fiber of size at most one, though 2 and 3 have no preimage (S04 to S07); g is a total function (the repeated row is harmless) and not injective, with collisions (1,3) and (2,4) and first collision (1,3) (S08 to S11); g|_C is injective (S12); h is not a function (S13); f₀:∅→B is injective (S14)."
        },
        "reverse_audit": {
          "kind": "sufficient_goal_reduction",
          "required_ids": [
            "S04",
            "S07",
            "S10",
            "S12",
            "S13",
            "S14",
            "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,4),(2,6),(3,1),(4,5) 是總函數且單射：六個輸入對的輸出都不同，每個纖維至多一個元素；它不是滿射（2、3 沒有原像）。g 是總函數（重複的 (2,6) 無害）但不單射，碰撞對為 (1,3)、(2,4)，字典序首碰撞是 (1,3)；g 限制到 {1,2} 則是單射。h 的輸入 2 有兩個輸出，不是函數，單射問題不適用。空定義域的函數是單射。",
      "en": "f: (1,4),(2,6),(3,1),(4,5) is a total function and injective: the two outputs differ for each of the six distinct-input pairs and every fiber has at most one element; it is not surjective (2 and 3 have no preimage). g is a total function (the repeated (2,6) is harmless) but not injective; its collision pairs are (1,3) and (2,4), and the first in lexicographic order is (1,3); g restricted to {1,2} is injective. h gives input 2 two outputs, so it is not a function and the injectivity question does not apply. The function with empty domain is injective."
    },
    "negative_controls": [
      {
        "claim": {
          "zh-Hant": "f 不是單射，因為陪域元素 2 沒有原像",
          "en": "f is not injective, because the codomain element 2 has no preimage"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "缺原像影響的是滿射；f 的六個輸入對輸出都不同，是單射。",
          "en": "A missing preimage concerns surjectivity; for each of the six distinct-input pairs, the two f-values differ, so f is injective."
        }
      },
      {
        "claim": {
          "zh-Hant": "h 不是單射，因為 h(2) 有兩個值",
          "en": "h is not injective, because h(2) has two values"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "h 根本不是函數；單射問題不適用，正確判定是「不是函數」。",
          "en": "h is not a function at all; the injectivity question does not apply, and the correct verdict is 'not a function'."
        }
      },
      {
        "claim": {
          "zh-Hant": "g 的表列出 (2,6) 兩次，所以 g 不是函數",
          "en": "The table of g lists (2,6) twice, so g is not a function"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "兩列完全相同，只是重複列出同一有序對；g 是總函數。",
          "en": "The two rows are identical, a repeated listing of one ordered pair; g is a total function."
        }
      },
      {
        "claim": {
          "zh-Hant": "g 不是單射，所以 g 限制到 C={1,2} 也不是單射",
          "en": "g is not injective, so g restricted to C={1,2} is not injective either"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "g|_C(1)=4≠6=g|_C(2)，限制後是單射。",
          "en": "g|_C(1)=4≠6=g|_C(2), so the restriction is injective."
        }
      },
      {
        "claim": {
          "zh-Hant": "g 的首碰撞是 (2,4)",
          "en": "The first collision of g is (2,4)"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "完整碰撞集合是 {(1,3),(2,4)}，字典序首對是 (1,3)。",
          "en": "The complete collision set is {(1,3),(2,4)}, and the first in lexicographic order is (1,3)."
        }
      }
    ],
    "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": "contrapositive",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "逆否命題：P⇒Q 與 ¬Q⇒¬P 等價。逆命題 Q⇒P 一般不與 P⇒Q 等價。",
          "en": "Contrapositive: P⇒Q is equivalent to ¬Q⇒¬P. The converse Q⇒P is in general not equivalent to P⇒Q."
        }
      },
      {
        "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": "numeric_evaluation",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "明確整數或有理數算式的精確求值；可以獨立重算。",
          "en": "Exact evaluation of an explicit integer or rational expression; independently recomputable."
        }
      },
      {
        "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": "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": "eq_refl_symm_trans",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "等號的性質：u=u；若 u=v 則 v=u；若 u=v 且 v=w 則 u=w。",
          "en": "Properties of equality: u=u; if u=v then v=u; if u=v and v=w then u=w."
        }
      },
      {
        "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": "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": "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_injective_def",
        "kind": "cited",
        "source": {
          "mko_id": "mko-injective",
          "sha256": "3075724e6925d827d24d227d1a1ae7ef1d5fb63e41ca8cbf87adcb12c8c76941",
          "commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f"
        },
        "statement": {
          "zh-Hant": "給定總函數 f:A→B，若對任意 x、y∈A，f(x)=f(y) 蘊涵 x=y，則 f 為單射；等價地，不同輸入具有不同輸出。每個 b∈B 的原像纖維 {x∈A:f(x)=b} 至多有一個元素。",
          "en": "A total function f:A→B is injective if, for all x,y∈A, f(x)=f(y) implies x=y. Equivalently, distinct inputs have distinct outputs. Every fiber {x∈A:f(x)=b}, for b∈B, has at most one element."
        }
      },
      {
        "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. Identical rows are just repeated listings of the same ordered pair."
        }
      },
      {
        "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": "restriction_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "對 C⊆A，f 限制到 C 的函數 f|_C:C→B 定義為 f|_C(x)=f(x)（x∈C）。",
          "en": "For C⊆A, the restriction f|_C:C→B is defined by f|_C(x)=f(x) for x∈C."
        }
      },
      {
        "id": "lex_order",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "整數對的字典序：(x,x′) 排在 (y,y′) 之前，當且僅當 x<y，或 x=y 且 x′<y′。",
          "en": "Lexicographic order on integer pairs: (x,x′) comes before (y,y′) exactly when x<y, or x=y and x′<y′."
        }
      },
      {
        "id": "empty_set_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "空集合：對每個 x，x∉∅。",
          "en": "Empty set: for every x, x∉∅."
        }
      },
      {
        "id": "L_pairs_lt",
        "kind": "lemma",
        "proved_in": [
          "S03.1"
        ],
        "statement": {
          "zh-Hant": "對 A⊆ℤ 與函數 f:A→B：f 單射 ⇔ 對所有 x、y∈A 且 x<y，都有 f(x)≠f(y)。",
          "en": "For A⊆ℤ and a function f:A→B: f is injective ⇔ f(x)≠f(y) for all x, y∈A with x<y."
        }
      },
      {
        "id": "L_fiber",
        "kind": "lemma",
        "proved_in": [
          "S06.1",
          "S06.2"
        ],
        "statement": {
          "zh-Hant": "對函數 f:A→B：f 單射 ⇔ 每個 b∈B 的纖維 f⁻¹({b}) 至多有一個元素。",
          "en": "For a function f:A→B: f is injective ⇔ for every b∈B the fiber f⁻¹({b}) has at most one element."
        }
      }
    ],
    "revision_log": [],
    "numeric_checks": [
      {
        "id": "N1",
        "step": "S04",
        "lhs": "(4-6)*(4-1)*(4-5)*(6-1)*(6-5)*(1-5)",
        "relation": "!=",
        "rhs": "0"
      },
      {
        "id": "N2",
        "step": "S03",
        "lhs": "comb(4,2)",
        "rhs": "6"
      },
      {
        "id": "N3",
        "step": "S09",
        "lhs": "4-4",
        "rhs": "0"
      },
      {
        "id": "N4",
        "step": "S10",
        "lhs": "6-6",
        "rhs": "0"
      },
      {
        "id": "N5",
        "step": "S10",
        "lhs": "(4-6)*(4-6)*(6-4)*(4-6)",
        "relation": "!=",
        "rhs": "0"
      },
      {
        "id": "N6",
        "step": "S12",
        "lhs": "4-6",
        "relation": "!=",
        "rhs": "0"
      },
      {
        "id": "N7",
        "step": "S13",
        "lhs": "6-5",
        "relation": "!=",
        "rhs": "0"
      },
      {
        "id": "N8",
        "step": "S05",
        "lhs": "1+0+0+1+1+1",
        "rhs": "4"
      },
      {
        "id": "N9",
        "step": "S11",
        "lhs": "0+0+0+2+0+2",
        "rhs": "4"
      }
    ]
  },
  "presentation": {
    "md_scope": {
      "zh-Hant": "在 MKO 的範圍內工作：有限整數標籤的函數表。先檢查總函數資格，再以完整比較判定單射，並證明兩個一般小引理（只需比較 x<y 的輸入對；單射等價於每個纖維至多一個元素）。結果只針對這些表，不外推到其他函數；不處理無限定義域；不改動 canonical MKO 或英文 edition。",
      "en": "Works inside the MKO's scope: finite integer-labelled function tables. First checks total-function qualification, then decides injectivity by complete comparison, and proves two small general lemmas (comparing input pairs x<y suffices; injectivity is equivalent to every fiber having at most one element). Results concern these tables only and are not extended to other functions; infinite domains are not treated; the canonical MKO and its English edition are not changed."
    },
    "md_symbols": [
      [
        "f,\\ g,\\ h",
        "三張函數表",
        "the three function tables"
      ],
      [
        "f^{-1}(\\{b\\})",
        "b 的纖維 {x∈A ∣ f(x)=b}",
        "the fiber {x∈A ∣ f(x)=b} of b"
      ],
      [
        "g|_C",
        "g 限制到 C 的函數",
        "the restriction of g to C"
      ],
      [
        "(x,x')",
        "碰撞對：x<x′ 且 g(x)=g(x′)",
        "a collision pair: x<x′ and g(x)=g(x′)"
      ],
      [
        "\\varnothing\\to B",
        "空定義域的函數",
        "the function with empty domain"
      ]
    ],
    "md_error_controls": [
      {
        "title": "單射不要求每個陪域元素都有原像 / Injectivity does not require every codomain element to be hit",
        "zh": "MKO 指出的誤解之一是把單射當成每個陪域元素都有原像。f 的陪域元素 2、3 沒有原像（S07），f 仍是單射；「每個陪域元素都有原像」是滿射的條件。單射只要求纖維至多一個元素，零個也可以。",
        "en": "One misconception named by the MKO is thinking injectivity means every codomain element has a preimage. The codomain elements 2 and 3 of f have no preimage (S07), yet f is injective; 'every codomain element has a preimage' is the condition for surjectivity. Injectivity only requires fibers of size at most one, and zero is allowed."
      },
      {
        "title": "先確認總函數資格 / Check total-function qualification first",
        "zh": "MKO 的另一個誤解是略過總函數資格。h 的輸入 2 對應 6 與 5，不是函數（S13），所以不能說「h 不是單射」；而 g 重複列出 (2,6) 並不破壞函數資格（S08）。判定單射前一定先做 S01、S08 這類檢查。",
        "en": "Another misconception identified in the MKO is skipping total-function qualification. h sends input 2 to both 6 and 5, so it is not a function (S13), and one cannot say 'h is not injective'; whereas g's repeated listing of (2,6) does not break function status (S08). Checks like S01 and S08 must come before any injectivity verdict."
      },
      {
        "title": "本稿從完整碰撞集合中選首碰撞 / This guide chooses the first collision from the complete collision set",
        "zh": "一個碰撞見證就足以否定單射（S09），本稿求「首碰撞」採先列出全部 x<x′ 的碰撞對、再按字典序取最小的完整稽核；若使用字典序掃描，排除所有更早對後也可停在首個碰撞（S10）。若只隨便找到 (2,4) 就宣稱它是首碰撞，會錯過排在前面的 (1,3)。",
        "en": "One collision witness is enough to refute injectivity (S09), but this guide audits the 'first collision' by listing all collision pairs with x<x′ and taking the lexicographically least; an ordered scan can also stop after excluding every earlier pair (S10). Grabbing (2,4) and calling it the first would miss (1,3), which comes earlier."
      }
    ],
    "md_open_items": [
      {
        "zh-Hant": "N1、N5 以「差的乘積非零」表示列出的各對輸出都不同（零乘積性質），只是對這些具體數字的重算。",
        "en": "N1 and N5 encode 'the listed pairs all have different outputs' as a nonzero product of differences (zero-product property); they only recompute these particular numbers."
      },
      {
        "zh-Hant": "本稿只處理有限整數標籤的表；L_pairs_lt 需要定義域可比較大小，對一般集合應直接使用 S02 的形式。",
        "en": "This guide treats finite integer-labelled tables only; L_pairs_lt needs a domain whose elements can be compared, and for general sets the form in S02 should be used directly."
      }
    ]
  },
  "revision": {
    "id": "production-20261019-adopted-96",
    "source_commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f",
    "adopted_source_sha256": "dafc9b0a4b50798ff78dcf28638ea8cdec7b99bc6437f143ac45ff1db55d4b0b",
    "original_source_sha256": "2abb8f0cb47a609b84f38055e37ace578fef639ffbc99b0a564f7e91305f5af8",
    "owner_adopted": true,
    "bilingual_sync": "complete_source_bound",
    "formal_Lean": "NOT_RUN",
    "independent_AI_concurrence": "NOT_MEASURED",
    "issue_ids": [
      "BR-M012"
    ],
    "scope": "Owner-adopted natural-language teaching guide; not a formal proof, canonical MKO rewrite or evidence-status promotion."
  }
}
