{
  "schema_version": "ocme-derivation-reader-v1",
  "guide_id": "derivation-mko-optimization-problem-01",
  "mko_id": "mko-optimization-problem",
  "title": {
    "zh-Hant": "最佳化問題：在九個整數候選中先判可行、再比較目標值",
    "en": "Optimization problem: feasibility first, then objective values, over nine integer candidates"
  },
  "contract": {
    "schema_version": "ocme-derivation-guide-v0.1",
    "guide_id": "derivation-mko-optimization-problem-01",
    "source": {
      "mko_id": "mko-optimization-problem",
      "commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f",
      "sha256": "55c8accf83a0b3a16cb86f438bdc6575f8dcec45e670f324e863e79a1a233514",
      "english_sha256": "b6379fa21189b83b931814f4a2acdc266e8f73e8fa2fad6e9d2190456191279e"
    },
    "mode": "algorithm_trace",
    "audience_prerequisites": [
      "set_builder",
      "order_basics",
      "case_analysis",
      "nat_induction",
      "forall_intro"
    ],
    "goal": {
      "zh-Hant": "候選集合 C={0,1,2}² 共九點，限制 x+2y≥3，目標函數 f(x,y)=x+y。以「先判定可行性、再逐一比較」的掃描演算法求最小值，並以不變量證明結果：最優值 m=2，argmin={(0,2),(1,1)}（兩個平手）；說明 (0,0) 與 (2,0) 雖然目標值不大於 2 卻不能入選；求最大值；並說明同一限制在實數非負象限上的最小值為 3/2，其達到點 (0,3/2) 不在宣告的有限候選集合中。",
      "en": "The candidate set C={0,1,2}² has nine points, the constraint is x+2y≥3 and the objective is f(x,y)=x+y. Minimize with a scan algorithm that first decides feasibility and then compares values one by one, and prove the result with an invariant: optimal value m=2, argmin={(0,2),(1,1)} (a tie of two); explain why (0,0) and (2,0) are excluded although their objective values do not exceed 2; find the maximum; and show that under the same constraint over the real nonnegative quadrant, the minimum is 3/2, attained at (0,3/2), which is not in the declared finite candidate set."
    },
    "givens": [
      {
        "id": "G1",
        "statement": {
          "zh-Hant": "候選集合 C={(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)}，依此次序完整列出（MKO 假設 a1）。",
          "en": "Candidate set C={(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)}, listed completely in this order (MKO assumption a1)."
        }
      },
      {
        "id": "G2",
        "statement": {
          "zh-Hant": "限制：x+2y≥3。可行集合 S={(x,y)∈C ∣ x+2y≥3}。",
          "en": "Constraint: x+2y≥3. Feasible set S={(x,y)∈C ∣ x+2y≥3}."
        }
      },
      {
        "id": "G3",
        "statement": {
          "zh-Hant": "目標公式先定義在候選域 C 上：f:C→ℝ，f(x,y)=x+y；實際最佳化使用其對可行域 S 的限制 f|S:S→ℝ。先求最小化，S13 再求最大化。",
          "en": "Define the objective formula on the candidate domain C: f:C→ℝ, f(x,y)=x+y. Optimization uses its restriction f|S:S→ℝ to the feasible domain. First minimize; S13 also maximizes."
        }
      }
    ],
    "steps": [
      {
        "id": "S01",
        "uses": [
          "G1",
          "G2",
          "G3"
        ],
        "before_tex": "\\text{find the best candidate}",
        "after_tex": "\\min_{s\\in S}f(s),\\ \\ \\operatorname{argmin}=\\{s^*\\in S\\mid \\forall s\\in S:\\ f(s^*)\\le f(s)\\}",
        "relation": "definition",
        "rule": "mko_opt_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "依 MKO 寫出問題：最優點必須屬於可行集合 S，並且對 S 中每一點目標值都不大於該點的值。最優值是一個數；argmin 是所有最優點的集合，可能不只一點。 這裡將 MKO 的目標函數取為 f|S；候選域 C 上的同名公式仍可用來說明不可行點的值，但那些點不參與最優比較。",
          "en": "State the problem as in the MKO: an optimal point must belong to the feasible set S and its objective value must not exceed that of any point of S. The optimal value is a number; argmin is the set of all optimal points and may have more than one element. Apply the MKO definition to the objective f|S. The same formula on C may describe values at infeasible candidates, but those candidates are excluded from the optimization comparison."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "G1",
            "G2",
            "G3",
            "mko_opt_def"
          ],
          "explanation": {
            "zh-Hant": "此步只寫出定義，不推出新事實；S 尚未計算出來。",
            "en": "This step only states definitions and derives no new fact; S has not yet been computed."
          }
        },
        "leaf_basis": "mko_opt_def + def_intro"
      },
      {
        "id": "S02",
        "uses": [
          "G1"
        ],
        "before_tex": "C",
        "after_tex": "|C|=9,\\ C=\\{0,1,2\\}\\times\\{0,1,2\\}",
        "relation": "equivalent",
        "rule": "cartesian_product_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "G1 列出的九點正是 {0,1,2}×{0,1,2} 的全部有序對，3·3=9，沒有重複也沒有遺漏。之後的所有結論只關於這九點。",
          "en": "The nine points listed in G1 are exactly all ordered pairs of {0,1,2}×{0,1,2}, 3·3=9, with no repetition or omission. Every later conclusion is about these nine points only."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "cartesian_product_def",
            "finite_counting_basics",
            "set_extensionality"
          ],
          "explanation": {
            "zh-Hant": "兩邊有相同元素（逐一對照），集合相等雙向成立。",
            "en": "Both sides have the same elements (matched one by one), so the set equality holds both ways."
          }
        },
        "leaf_basis": "cartesian_product_def + finite_counting_basics"
      },
      {
        "id": "S03",
        "uses": [
          "S02",
          "G2"
        ],
        "before_tex": "g(x,y)=x+2y\\ \\text{on }C",
        "after_tex": "\\text{mask: }0,2,4,1,3,5,2,4,6\\ \\Rightarrow\\ \\text{F,F,T,F,T,T,F,T,T}",
        "relation": "equivalent",
        "rule": "numeric_evaluation",
        "conditions": [],
        "explanation": {
          "zh-Hant": "依 MKO，先判可行性。對九點依次計算 g=x+2y，再與 3 比較，得到可行遮罩；計算按 x 分三列在 S03.1 到 S03.3。",
          "en": "By the MKO, decide feasibility first. Compute g=x+2y at the nine points in order and compare with 3 to get the feasibility mask; the computation is split into three rows by x in S03.1 to S03.3."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "numeric_evaluation",
            "order_basics"
          ],
          "explanation": {
            "zh-Hant": "每個值都可獨立重算；與 3 的比較是整數比較，真假確定。",
            "en": "Each value can be recomputed independently; comparison with 3 is an integer comparison with a definite answer."
          }
        },
        "leaf_basis": "numeric_evaluation + order_basics"
      },
      {
        "id": "S03.1",
        "uses": [
          "G2"
        ],
        "before_tex": "(0,0),(0,1),(0,2)",
        "after_tex": "g=0,2,4;\\ \\text{feasible only }(0,2)",
        "relation": "equivalent",
        "rule": "numeric_evaluation",
        "conditions": [],
        "explanation": {
          "zh-Hant": "x=0：g(0,0)=0<3，g(0,1)=2<3，g(0,2)=4≥3。",
          "en": "x=0: g(0,0)=0<3, g(0,1)=2<3, g(0,2)=4≥3."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "numeric_evaluation"
          ],
          "explanation": {
            "zh-Hant": "精確整數計算，雙向相同。",
            "en": "Exact integer computation, the same both ways."
          }
        },
        "leaf_basis": "numeric_evaluation + order_basics"
      },
      {
        "id": "S03.2",
        "uses": [
          "G2"
        ],
        "before_tex": "(1,0),(1,1),(1,2)",
        "after_tex": "g=1,3,5;\\ \\text{feasible }(1,1),(1,2)",
        "relation": "equivalent",
        "rule": "numeric_evaluation",
        "conditions": [],
        "explanation": {
          "zh-Hant": "x=1：g(1,0)=1<3，g(1,1)=3≥3（等號也可行），g(1,2)=5≥3。",
          "en": "x=1: g(1,0)=1<3, g(1,1)=3≥3 (equality is feasible), g(1,2)=5≥3."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "numeric_evaluation"
          ],
          "explanation": {
            "zh-Hant": "精確整數計算；限制用 ≥，所以 g=3 的點可行。",
            "en": "Exact integer computation; the constraint uses ≥, so the point with g=3 is feasible."
          }
        },
        "leaf_basis": "numeric_evaluation + order_basics"
      },
      {
        "id": "S03.3",
        "uses": [
          "G2"
        ],
        "before_tex": "(2,0),(2,1),(2,2)",
        "after_tex": "g=2,4,6;\\ \\text{feasible }(2,1),(2,2)",
        "relation": "equivalent",
        "rule": "numeric_evaluation",
        "conditions": [],
        "explanation": {
          "zh-Hant": "x=2：g(2,0)=2<3，g(2,1)=4≥3，g(2,2)=6≥3。",
          "en": "x=2: g(2,0)=2<3, g(2,1)=4≥3, g(2,2)=6≥3."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "numeric_evaluation"
          ],
          "explanation": {
            "zh-Hant": "精確整數計算，雙向相同。",
            "en": "Exact integer computation, the same both ways."
          }
        },
        "leaf_basis": "numeric_evaluation + order_basics"
      },
      {
        "id": "S04",
        "uses": [
          "S03",
          "G2"
        ],
        "before_tex": "S=\\{(x,y)\\in C\\mid x+2y\\ge 3\\}",
        "after_tex": "S=\\{(0,2),(1,1),(1,2),(2,1),(2,2)\\},\\ |S|=5",
        "relation": "equivalent",
        "rule": "set_builder",
        "conditions": [],
        "explanation": {
          "zh-Hant": "依集合建構式，S 恰由遮罩為真的五點組成；(0,0)、(0,1)、(1,0)、(2,0) 不可行。S 非空，所以最小值有機會存在。依掃描次序記 s_1=(0,2)、s_2=(1,1)、s_3=(1,2)、s_4=(2,1)、s_5=(2,2)。",
          "en": "By set-builder notation, S consists exactly of the five points whose mask is true; (0,0), (0,1), (1,0) and (2,0) are infeasible. S is nonempty, so a minimum can exist. In scan order write s_1=(0,2), s_2=(1,1), s_3=(1,2), s_4=(2,1), s_5=(2,2)."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "set_builder",
            "S03"
          ],
          "explanation": {
            "zh-Hant": "每點屬於 S 當且僅當它在 C 中且滿足限制，九點全部檢查過，雙向成立。",
            "en": "A point belongs to S exactly when it is in C and satisfies the constraint; all nine points were checked, so both directions hold."
          }
        },
        "leaf_basis": "set_builder + set_extensionality"
      },
      {
        "id": "S05",
        "uses": [
          "S04",
          "G3"
        ],
        "before_tex": "f(s_1),f(s_2),f(s_3),f(s_4),f(s_5)",
        "after_tex": "2,\\ 2,\\ 3,\\ 3,\\ 4",
        "relation": "equivalent",
        "rule": "numeric_evaluation",
        "conditions": [],
        "explanation": {
          "zh-Hant": "只對可行點計算目標值：f(0,2)=2，f(1,1)=2，f(1,2)=3，f(2,1)=3，f(2,2)=4。",
          "en": "Compute objective values on feasible points only: f(0,2)=2, f(1,1)=2, f(1,2)=3, f(2,1)=3, f(2,2)=4."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "numeric_evaluation"
          ],
          "explanation": {
            "zh-Hant": "精確整數計算，雙向相同。",
            "en": "Exact integer computation, the same both ways."
          }
        },
        "leaf_basis": "numeric_evaluation"
      },
      {
        "id": "S06",
        "uses": [
          "S04",
          "L_scan_invariant"
        ],
        "before_tex": "m_1=f(s_1),\\ A_1=\\{s_1\\}",
        "after_tex": "m_k=\\min_{1\\le j\\le k}f(s_j),\\ A_k=\\{s_j\\mid 1\\le j\\le k,\\ f(s_j)=m_k\\}\\ \\text{for }k=1,2,3,4,5",
        "relation": "implies",
        "rule": "L_scan_invariant",
        "conditions": [],
        "explanation": {
          "zh-Hant": "掃描演算法：以 m_1=f(s_1)、A_1={s_1} 開始（只看一點時顯然成立），之後依 L_scan_invariant 的三種情況更新。引理（在 S06.1 到 S06.3 分情況證明）說明每次更新都保持不變量，所以由 k=1 逐步歸納到 k=5，不變量一直成立。演算法在處理完 |S|=5 個點後停止。",
          "en": "Scan algorithm: start with m_1=f(s_1) and A_1={s_1} (clearly correct for one point), then update by the three cases of L_scan_invariant. The lemma (proved by cases in S06.1 to S06.3) shows that each update preserves the invariant, so by induction from k=1 to k=5 the invariant always holds. The algorithm stops after processing |S|=5 points."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_scan_invariant",
            "nat_induction",
            "finite_counting_basics"
          ],
          "explanation": {
            "zh-Hant": "需要初值正確、每步保持不變量，以及 S 有限（終止）；三者都已具備。",
            "en": "It needs a correct start, preservation at each step and finiteness of S (termination); all three are available."
          }
        },
        "leaf_basis": "nat_induction + case_analysis + order_basics"
      },
      {
        "id": "S06.1",
        "uses": [
          "order_basics"
        ],
        "before_tex": "f(s_{k+1})<m_k",
        "after_tex": "m_{k+1}=f(s_{k+1}),\\ A_{k+1}=\\{s_{k+1}\\}",
        "relation": "implies",
        "rule": "order_basics",
        "conditions": [
          "f(s_{k+1})<m_k"
        ],
        "explanation": {
          "zh-Hant": "若 f(s_(k+1))<m_k，則對 j≤k 有 f(s_j)≥m_k>f(s_(k+1))，所以 f(s_(k+1)) 是前 k+1 點的最小值，而且只有 s_(k+1) 達到它（其他點嚴格較大）。",
          "en": "If f(s_(k+1))<m_k, then for j≤k we have f(s_j)≥m_k>f(s_(k+1)), so f(s_(k+1)) is the minimum over the first k+1 points, and only s_(k+1) attains it (the others are strictly larger)."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "order_basics"
          ],
          "explanation": {
            "zh-Hant": "用到不等號的遞移；舊的平手集合整個被替換，因為其中每點都嚴格較大。",
            "en": "It uses transitivity of the order; the old tie set is replaced entirely, since each of its points is strictly larger."
          }
        },
        "leaf_basis": "order_basics"
      },
      {
        "id": "S06.2",
        "uses": [
          "order_basics"
        ],
        "before_tex": "f(s_{k+1})=m_k",
        "after_tex": "m_{k+1}=m_k,\\ A_{k+1}=A_k\\cup\\{s_{k+1}\\}",
        "relation": "implies",
        "rule": "order_basics",
        "conditions": [
          "f(s_{k+1})=m_k"
        ],
        "explanation": {
          "zh-Hant": "若相等，最小值不變，而達到它的點多了 s_(k+1)：這就是平手。把 s_(k+1) 加入而不是丟棄，才能報告全部最優點。",
          "en": "If equal, the minimum does not change and one more point, s_(k+1), attains it: this is a tie. Adding s_(k+1) rather than discarding it is what lets the algorithm report all optimal points."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "order_basics",
            "set_operations_def"
          ],
          "explanation": {
            "zh-Hant": "用到相等的值不小於也不大於最小值；若此處丟棄平手點，結果只會是 argmin 的一部分。",
            "en": "It uses that an equal value is neither below nor above the minimum; discarding the tied point here would give only part of argmin."
          }
        },
        "leaf_basis": "order_basics + set_operations_def"
      },
      {
        "id": "S06.3",
        "uses": [
          "order_basics"
        ],
        "before_tex": "f(s_{k+1})>m_k",
        "after_tex": "m_{k+1}=m_k,\\ A_{k+1}=A_k",
        "relation": "implies",
        "rule": "order_basics",
        "conditions": [
          "f(s_{k+1})>m_k"
        ],
        "explanation": {
          "zh-Hant": "若較大，最小值不變，s_(k+1) 不達到它，平手集合不變。三種情況由三分律涵蓋全部可能。S06.1 到 S06.3 合起來證得引理 L_scan_invariant。",
          "en": "If larger, the minimum does not change, s_(k+1) does not attain it, and the tie set stays the same. By trichotomy the three cases cover every possibility. S06.1 to S06.3 together prove Lemma L_scan_invariant."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "order_basics",
            "case_analysis"
          ],
          "explanation": {
            "zh-Hant": "三分律保證三種情況恰有一種成立，所以分情況完整。",
            "en": "Trichotomy guarantees exactly one of the three cases, so the case analysis is complete."
          }
        },
        "leaf_basis": "order_basics + case_analysis"
      },
      {
        "id": "S07",
        "uses": [
          "S05",
          "S06"
        ],
        "before_tex": "k=1:\\ s_1=(0,2)",
        "after_tex": "m_1=2,\\ A_1=\\{(0,2)\\}",
        "relation": "implies",
        "rule": "def_intro",
        "conditions": [],
        "explanation": {
          "zh-Hant": "追蹤：起始點 s_1=(0,2)，f=2，所以 m_1=2，A_1={(0,2)}。",
          "en": "Trace: the starting point is s_1=(0,2) with f=2, so m_1=2 and A_1={(0,2)}."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "S05",
            "def_intro"
          ],
          "explanation": {
            "zh-Hant": "初始化只看一點，不變量顯然成立。",
            "en": "Initialization looks at one point, and the invariant clearly holds."
          }
        },
        "leaf_basis": "def_intro + numeric_evaluation"
      },
      {
        "id": "S08",
        "uses": [
          "S07",
          "S05",
          "L_scan_invariant"
        ],
        "before_tex": "k=2:\\ f(1,1)=2=m_1",
        "after_tex": "m_2=2,\\ A_2=\\{(0,2),(1,1)\\}",
        "relation": "implies",
        "rule": "L_scan_invariant",
        "conditions": [
          "f(s_2)=m_1"
        ],
        "explanation": {
          "zh-Hant": "s_2=(1,1) 的值 2 等於目前最小值，屬於平手情況（S06.2），加入平手集合。",
          "en": "The value 2 of s_2=(1,1) equals the current minimum, which is the tie case (S06.2), so it joins the tie set."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_scan_invariant",
            "S07"
          ],
          "explanation": {
            "zh-Hant": "依引理的相等情況；若用「嚴格小於才更新」又不記平手，就會遺漏 (1,1)。",
            "en": "By the equality case of the lemma; an update rule that acts only on strictly smaller values without recording ties would miss (1,1)."
          }
        },
        "leaf_basis": "L_scan_invariant"
      },
      {
        "id": "S09",
        "uses": [
          "S08",
          "S05",
          "L_scan_invariant"
        ],
        "before_tex": "k=3,4,5:\\ f=3,3,4",
        "after_tex": "m_5=2,\\ A_5=\\{(0,2),(1,1)\\}",
        "relation": "implies",
        "rule": "L_scan_invariant",
        "conditions": [
          "3>2,\\ 3>2,\\ 4>2"
        ],
        "explanation": {
          "zh-Hant": "其餘三點都屬於「較大」情況，m 與 A 不變；逐點細節在 S09.1 到 S09.3。",
          "en": "The remaining three points all fall in the 'larger' case, so m and A do not change; the point-by-point details are in S09.1 to S09.3."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_scan_invariant",
            "S08"
          ],
          "explanation": {
            "zh-Hant": "依引理的較大情況三次；每次比較都是精確整數比較。",
            "en": "The 'larger' case of the lemma, three times; each comparison is an exact integer comparison."
          }
        },
        "leaf_basis": "L_scan_invariant + order_basics"
      },
      {
        "id": "S09.1",
        "uses": [
          "S08",
          "S05",
          "L_scan_invariant"
        ],
        "before_tex": "k=3:\\ f(1,2)=3",
        "after_tex": "3>2:\\ m_3=2,\\ A_3=A_2",
        "relation": "implies",
        "rule": "L_scan_invariant",
        "conditions": [
          "3>2"
        ],
        "explanation": {
          "zh-Hant": "f(1,2)=3>2，不改變。",
          "en": "f(1,2)=3>2, no change."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_scan_invariant"
          ],
          "explanation": {
            "zh-Hant": "較大情況。",
            "en": "The larger case."
          }
        },
        "leaf_basis": "L_scan_invariant + order_basics"
      },
      {
        "id": "S09.2",
        "uses": [
          "S09.1",
          "S05",
          "L_scan_invariant"
        ],
        "before_tex": "k=4:\\ f(2,1)=3",
        "after_tex": "3>2:\\ m_4=2,\\ A_4=A_3",
        "relation": "implies",
        "rule": "L_scan_invariant",
        "conditions": [
          "3>2"
        ],
        "explanation": {
          "zh-Hant": "f(2,1)=3>2，不改變。",
          "en": "f(2,1)=3>2, no change."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_scan_invariant"
          ],
          "explanation": {
            "zh-Hant": "較大情況。",
            "en": "The larger case."
          }
        },
        "leaf_basis": "L_scan_invariant + order_basics"
      },
      {
        "id": "S09.3",
        "uses": [
          "S09.2",
          "S05",
          "L_scan_invariant"
        ],
        "before_tex": "k=5:\\ f(2,2)=4",
        "after_tex": "4>2:\\ m_5=2,\\ A_5=A_4",
        "relation": "implies",
        "rule": "L_scan_invariant",
        "conditions": [
          "4>2"
        ],
        "explanation": {
          "zh-Hant": "f(2,2)=4>2，不改變。掃描結束。",
          "en": "f(2,2)=4>2, no change. The scan ends."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "L_scan_invariant"
          ],
          "explanation": {
            "zh-Hant": "較大情況；k=5=|S|，演算法終止。",
            "en": "The larger case; k=5=|S|, so the algorithm terminates."
          }
        },
        "leaf_basis": "L_scan_invariant + order_basics"
      },
      {
        "id": "S10",
        "uses": [
          "S06",
          "S09"
        ],
        "before_tex": "m_5=2,\\ A_5=\\{(0,2),(1,1)\\}",
        "after_tex": "m=\\min_{s\\in S}f(s)=2,\\ \\operatorname{argmin}=\\{(0,2),(1,1)\\}",
        "relation": "implies",
        "rule": "L_scan_invariant",
        "conditions": [
          "k=|S|=5"
        ],
        "explanation": {
          "zh-Hant": "終止時 k=5，不變量說 m_5 是 f 在 s_1 到 s_5（即整個 S）上的最小值，A_5 是全部達到它的點。所以最優值 m=2，argmin={(0,2),(1,1)}，有兩個平手最優點。",
          "en": "At termination k=5, and the invariant says that m_5 is the minimum of f over s_1 to s_5, that is over all of S, and A_5 is the set of all points attaining it. So the optimal value is m=2 and argmin={(0,2),(1,1)}, with two tied optimal points."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "S06",
            "S09",
            "finite_counting_basics"
          ],
          "explanation": {
            "zh-Hant": "需要掃描涵蓋 S 的每一點；S04 已列出全部五點，所以 k=5 時就是整個 S。",
            "en": "It needs the scan to cover every point of S; S04 lists all five points, so k=5 means all of S."
          }
        },
        "leaf_basis": "L_scan_invariant + finite_counting_basics"
      },
      {
        "id": "S11",
        "uses": [
          "S05",
          "S10",
          "mko_opt_def"
        ],
        "before_tex": "\\forall s\\in S:\\ f(0,2)\\le f(s)\\ \\land\\ f(1,1)\\le f(s)",
        "after_tex": "(0,2),(1,1)\\ \\text{satisfy the MKO definition of minimizer}",
        "relation": "implies",
        "rule": "mko_opt_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "直接用 MKO 的定義交叉核對：2≤2、2≤2、2≤3、2≤3、2≤4，五個比較涵蓋 S 的每一點，所以 (0,2) 與 (1,1) 都是最小化點；另外三點的值 3、3、4 都大於某個可行點的值 2，所以不是最小化點。",
          "en": "Cross-check directly against the MKO definition: 2≤2, 2≤2, 2≤3, 2≤3, 2≤4; these five comparisons cover every point of S, so (0,2) and (1,1) are both minimizers; the other three points, with values 3, 3 and 4, exceed the value 2 of a feasible point, so they are not minimizers."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "S05",
            "mko_opt_def",
            "forall_intro"
          ],
          "explanation": {
            "zh-Hant": "全稱命題「對每個 s∈S」可由逐一檢查證明，因為 S 是完整列出的有限集合；這不外推到 S 以外的點。",
            "en": "The universal statement 'for every s∈S' is proved by checking each element, because S is a completely listed finite set; this does not extend to points outside S."
          }
        },
        "leaf_basis": "mko_opt_def + forall_intro + order_basics"
      },
      {
        "id": "S12",
        "uses": [
          "S03",
          "S04",
          "mko_opt_notes"
        ],
        "before_tex": "f(0,0)=0<2,\\ f(2,0)=2=m",
        "after_tex": "(0,0),(2,0)\\notin\\operatorname{argmin}",
        "relation": "implies",
        "rule": "mko_opt_notes",
        "conditions": [
          "(0,0),(2,0)\\notin S"
        ],
        "explanation": {
          "zh-Hant": "依 MKO，不可行點即使數值更好也不能成為最優解。(0,0) 的值 0 比 2 小，但 g(0,0)=0<3；(2,0) 的值恰為 2，但 g(2,0)=2<3。兩者都不在 S 中，所以都不在 argmin 中，也不使最優值變成 0。",
          "en": "By the MKO, an infeasible point cannot be optimal even if its value is better. (0,0) has value 0, below 2, but g(0,0)=0<3; (2,0) has value exactly 2, but g(2,0)=2<3. Neither is in S, so neither is in argmin, and the optimal value does not become 0."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "S03",
            "S04",
            "mko_opt_notes"
          ],
          "explanation": {
            "zh-Hant": "只需要這兩點不可行；argmin 的定義要求先屬於 S。",
            "en": "It needs only that these two points are infeasible; the definition of argmin requires membership in S first."
          }
        },
        "leaf_basis": "mko_opt_notes + set_builder"
      },
      {
        "id": "S13",
        "uses": [
          "S05",
          "mko_opt_def"
        ],
        "before_tex": "\\max_{s\\in S}f(s)",
        "after_tex": "\\max=4,\\ \\operatorname{argmax}=\\{(2,2)\\}",
        "relation": "implies",
        "rule": "mko_opt_def",
        "conditions": [],
        "explanation": {
          "zh-Hant": "最大化把不等號反向：要求 f(s*)≥f(s) 對每個 s∈S。逐一比較：4≥2、4≥2、4≥3、4≥3、4≥4，所以 (2,2) 是最大化點；其他點的值都小於 4，所以這裡最大化點唯一。唯一與否要由列舉決定，最小化那邊就不唯一。",
          "en": "Maximization reverses the inequality: f(s*)≥f(s) for every s∈S. Comparing one by one: 4≥2, 4≥2, 4≥3, 4≥3, 4≥4, so (2,2) is a maximizer; every other point has a value below 4, so here the maximizer is unique. Uniqueness has to be read off the enumeration: on the minimization side it fails."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "S05",
            "mko_opt_def",
            "order_basics"
          ],
          "explanation": {
            "zh-Hant": "與 S11 相同的完整枚舉，方向相反。",
            "en": "The same complete enumeration as S11, in the opposite direction."
          }
        },
        "leaf_basis": "mko_opt_def + order_basics"
      },
      {
        "id": "S14",
        "uses": [
          "G2",
          "G3"
        ],
        "before_tex": "\\min\\{x+y\\mid x,y\\in\\mathbb{R},\\ x,y\\ge 0,\\ x+2y\\ge 3\\}",
        "after_tex": "=\\tfrac{3}{2}\\ \\text{at }(0,\\tfrac{3}{2})\\notin C",
        "relation": "implies",
        "rule": "order_basics",
        "conditions": [
          "x\\ge 0,\\ y\\ge 0"
        ],
        "explanation": {
          "zh-Hant": "說明有限枚舉不能外推：若把候選改成實數非負象限，同一限制下的最小值是 3/2，達到點 (0,3/2) 不在 C 中；證明在 S14.1 到 S14.3。所以「最優值 2」只是宣告的九點集合上的結論。",
          "en": "To show that a finite enumeration does not extrapolate: if the candidates are changed to the real nonnegative quadrant, the minimum under the same constraint is 3/2, attained at (0,3/2), which is not in C; the proof is in S14.1 to S14.3. So 'optimal value 2' is a conclusion about the declared nine-point set only."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "order_basics"
          ],
          "explanation": {
            "zh-Hant": "這是另一個問題（可行集合不同），只用來對照；不改變 S10 的結論。",
            "en": "This is a different problem (a different feasible set), used only for contrast; it does not change the conclusion of S10."
          }
        },
        "leaf_basis": "order_basics + distributive"
      },
      {
        "id": "S14.1",
        "uses": [
          "distributive"
        ],
        "before_tex": "x+y",
        "after_tex": "\\tfrac{1}{2}(x+2y)+\\tfrac{1}{2}x",
        "relation": "equivalent",
        "rule": "distributive",
        "conditions": [],
        "explanation": {
          "zh-Hant": "展開右邊：x/2+y+x/2=x+y，所以這是對所有實數成立的恆等式（N9）。",
          "en": "Expanding the right side: x/2+y+x/2=x+y, so this is an identity for all reals (N9)."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "distributive",
            "frac_rules"
          ],
          "explanation": {
            "zh-Hant": "恆等式，兩式在每點相等。",
            "en": "An identity; the two expressions agree at every point."
          }
        },
        "leaf_basis": "distributive + frac_rules"
      },
      {
        "id": "S14.2",
        "uses": [
          "S14.1",
          "order_basics"
        ],
        "before_tex": "\\tfrac{1}{2}(x+2y)+\\tfrac{1}{2}x,\\ x+2y\\ge 3,\\ x\\ge 0",
        "after_tex": "x+y\\ge\\tfrac{3}{2}",
        "relation": "implies",
        "rule": "order_basics",
        "conditions": [
          "x\\ge 0",
          "x+2y\\ge 3"
        ],
        "explanation": {
          "zh-Hant": "由 x+2y≥3 得 (x+2y)/2≥3/2（乘正數 1/2），由 x≥0 得 x/2≥0，兩者相加得 x+y≥3/2。",
          "en": "From x+2y≥3, (x+2y)/2≥3/2 (multiplying by the positive 1/2); from x≥0, x/2≥0; adding gives x+y≥3/2."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "order_basics",
            "S14.1"
          ],
          "explanation": {
            "zh-Hant": "需要 x≥0；沒有這個條件，下界不成立（例如 x=−1、y=2 時 x+y=1）。",
            "en": "It needs x≥0; without it the bound fails (for example x=−1, y=2 gives x+y=1)."
          }
        },
        "leaf_basis": "order_basics"
      },
      {
        "id": "S14.3",
        "uses": [
          "S14.2"
        ],
        "before_tex": "(x,y)=(0,\\tfrac{3}{2})",
        "after_tex": "x+2y=3,\\ x+y=\\tfrac{3}{2},\\ (0,\\tfrac{3}{2})\\notin C",
        "relation": "implies",
        "rule": "numeric_evaluation",
        "conditions": [],
        "explanation": {
          "zh-Hant": "(0,3/2) 滿足 x,y≥0 與 0+2·(3/2)=3≥3，且值為 3/2，所以下界被達到，實數鬆弛的最小值是 3/2。3/2 不是整數，(0,3/2) 不在 C 中。",
          "en": "(0,3/2) satisfies x,y≥0 and 0+2·(3/2)=3≥3, with value 3/2, so the bound is attained and the minimum of the real relaxation is 3/2. 3/2 is not an integer, so (0,3/2) is not in C."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "S14.2",
            "numeric_evaluation"
          ],
          "explanation": {
            "zh-Hant": "下界加上一個達到點即得最小值；這裡不宣稱達到點唯一。",
            "en": "A lower bound plus a point attaining it gives the minimum; uniqueness of that point is not claimed."
          }
        },
        "leaf_basis": "numeric_evaluation + exists_intro"
      },
      {
        "id": "S15",
        "uses": [
          "S10",
          "S11",
          "S12",
          "S13",
          "S14"
        ],
        "before_tex": "\\text{proved facts}",
        "after_tex": "m=2,\\ \\operatorname{argmin}=\\{(0,2),(1,1)\\},\\ \\max=4,\\ \\operatorname{argmax}=\\{(2,2)\\}",
        "relation": "implies",
        "rule": "and_intro_elim",
        "conditions": [],
        "explanation": {
          "zh-Hant": "合併結論：在宣告的九點中，可行點五個；最小值 2 由 (0,2) 與 (1,1) 平手達到；不可行的 (0,0)、(2,0) 被排除；最大值 4 由 (2,2) 唯一達到；這些結論不外推到實數可行域（那裡最小值為 3/2）。",
          "en": "Combine the conclusions: among the nine declared points five are feasible; the minimum 2 is attained by (0,2) and (1,1) in a tie; the infeasible (0,0) and (2,0) are excluded; the maximum 4 is attained only by (2,2); these conclusions do not extend to the real feasible region (where the minimum is 3/2)."
        },
        "reverse_audit": {
          "kind": "sufficient_goal_reduction",
          "required_ids": [
            "S10",
            "S11",
            "S12",
            "S13",
            "S14",
            "and_intro_elim"
          ],
          "explanation": {
            "zh-Hant": "目標 G：本稿目標的各項判定。足夠條件 H：S10 到 S14 各自已證（H⇒G 由合取引入）。H 由給定條件正向推出，沒有把 G 當作前提。",
            "en": "Goal G: the determinations in the goal. Sufficient condition H: S10 to S14, each already proved (H⇒G by conjunction introduction). H is derived forwards from the givens; G is never used as a premise."
          }
        },
        "leaf_basis": "and_intro_elim"
      }
    ],
    "result": {
      "zh-Hant": "在 C={0,1,2}² 上，限制 x+2y≥3 留下五個可行點；目標 f=x+y 的最優值 m=2，argmin={(0,2),(1,1)} 有兩個平手點，由掃描演算法的不變量與直接枚舉兩種方式證明。(0,0)（值 0）與 (2,0)（值 2）不可行而被排除。最大值 4 只在 (2,2) 達到。若把候選換成實數非負象限，最小值是 3/2（在 (0,3/2)），說明有限枚舉的結論不能外推。",
      "en": "On C={0,1,2}², the constraint x+2y≥3 leaves five feasible points; the objective f=x+y has optimal value m=2 with argmin={(0,2),(1,1)}, a tie of two points, proved both by the scan algorithm's invariant and by direct enumeration. (0,0) (value 0) and (2,0) (value 2) are infeasible and excluded. The maximum 4 is attained only at (2,2). Over the real nonnegative quadrant the minimum would be 3/2 (at (0,3/2)), showing that the conclusion of a finite enumeration does not extrapolate."
    },
    "negative_controls": [
      {
        "claim": {
          "zh-Hant": "最小值是 0，在 (0,0) 達到",
          "en": "The minimum is 0, attained at (0,0)"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "g(0,0)=0<3，(0,0) 不可行（S12）。",
          "en": "g(0,0)=0<3, so (0,0) is infeasible (S12)."
        }
      },
      {
        "claim": {
          "zh-Hant": "唯一的最小化點是 (0,2)",
          "en": "The unique minimizer is (0,2)"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "(1,1) 也可行且 f(1,1)=2，與 (0,2) 平手（S08、S11）。",
          "en": "(1,1) is also feasible with f(1,1)=2, tying with (0,2) (S08, S11)."
        }
      },
      {
        "claim": {
          "zh-Hant": "(2,0) 的值是 2，所以它也屬於 argmin",
          "en": "(2,0) has value 2, so it also belongs to argmin"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "g(2,0)=2<3，不可行，不能屬於 argmin（S12）。",
          "en": "g(2,0)=2<3, so it is infeasible and cannot belong to argmin (S12)."
        }
      },
      {
        "claim": {
          "zh-Hant": "既然枚舉得到最小值 2，那麼在所有滿足 x,y≥0、x+2y≥3 的實數點上最小值也是 2",
          "en": "Since the enumeration gives minimum 2, the minimum over all real points with x,y≥0 and x+2y≥3 is also 2"
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "(0,3/2) 可行且值為 3/2<2（S14）。",
          "en": "(0,3/2) is feasible with value 3/2<2 (S14)."
        }
      }
    ],
    "status": "candidate",
    "gaps": [],
    "verification": {
      "structure": "checked_local_script",
      "mathematics": "candidate_argument",
      "formalization": "not_formalized"
    },
    "rule_glossary": [
      {
        "id": "set_builder",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "集合建構式：x∈{y∈A ∣ P(y)} 當且僅當 x∈A 且 P(x)。",
          "en": "Set-builder notation: x∈{y∈A ∣ P(y)} if and only if x∈A and P(x)."
        }
      },
      {
        "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": "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": "nat_induction",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "數學歸納原理：對從 n₀ 起的命題族 P(n)，若 P(n₀) 成立，且對每個 n≥n₀ 都有 P(n)⇒P(n+1)，則所有 n≥n₀ 都有 P(n)。",
          "en": "Principle of induction: for a family P(n) starting at n₀, if P(n₀) holds and P(n)⇒P(n+1) for every n≥n₀, then P(n) holds for every n≥n₀."
        }
      },
      {
        "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": "def_intro",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "引入定義：可為一個命題、式子或物件取名；之後名稱與被定義者可互相替換。",
          "en": "Introducing a definition: a statement, expression or object may be given a name, after which the name and what it stands for are interchangeable."
        }
      },
      {
        "id": "cartesian_product_def",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "笛卡兒積：A×B 是所有有序對 (a,b)（a∈A、b∈B）的集合；(a,b)=(c,d) ⇔ a=c 且 b=d。",
          "en": "Cartesian product: A×B is the set of ordered pairs (a,b) with a∈A and b∈B; (a,b)=(c,d) ⇔ a=c and b=d."
        }
      },
      {
        "id": "finite_counting_basics",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "有限計數：互斥有限集合 A、B 有 |A∪B|=|A|+|B|；|A×B|=|A|·|B|；有限集之間存在雙射 ⇔ 元素個數相同。",
          "en": "Finite counting: for disjoint finite sets A, B, |A∪B|=|A|+|B|; |A×B|=|A|·|B|; there is a bijection between finite sets ⇔ they have the same number of elements."
        }
      },
      {
        "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": "numeric_evaluation",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "明確整數或有理數算式的精確求值；可以獨立重算。",
          "en": "Exact evaluation of an explicit integer or rational expression; independently recomputable."
        }
      },
      {
        "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": "distributive",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "分配律：u(v+w)=uv+uw；配合乘法交換律也有 (v+w)u=vu+wu。",
          "en": "Distributivity: u(v+w)=uv+uw; with commutativity also (v+w)u=vu+wu."
        }
      },
      {
        "id": "frac_rules",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "分數運算（分母皆非零）：a/c+b/c=(a+b)/c；(a/b)(c/d)=(ac)/(bd)；(a/b)/(c/d)=(ad)/(bc)（另需 c≠0）；a/b=(ak)/(bk)（k≠0）。",
          "en": "Fraction rules (all denominators nonzero): a/c+b/c=(a+b)/c; (a/b)(c/d)=(ac)/(bd); (a/b)/(c/d)=(ad)/(bc) (also needing c≠0); a/b=(ak)/(bk) for k≠0."
        }
      },
      {
        "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_opt_def",
        "kind": "cited",
        "source": {
          "mko_id": "mko-optimization-problem",
          "sha256": "55c8accf83a0b3a16cb86f438bdc6575f8dcec45e670f324e863e79a1a233514",
          "commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f"
        },
        "statement": {
          "zh-Hant": "給可行集合 S 與目標函數 f:S→R，最小化問題尋找 x*∈S，使每個 x∈S 都有 f(x*)≤f(x)；最大化反向。最優值可能由多個最優點同時達成。",
          "en": "For a feasible set S and objective f:S→R, minimization seeks x*∈S with f(x*)≤f(x) for every x∈S; maximization reverses the inequality. Several optimal points may attain the same value."
        }
      },
      {
        "id": "mko_opt_notes",
        "kind": "cited",
        "source": {
          "mko_id": "mko-optimization-problem",
          "sha256": "55c8accf83a0b3a16cb86f438bdc6575f8dcec45e670f324e863e79a1a233514",
          "commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f"
        },
        "statement": {
          "zh-Hant": "先判定可行性，再比較目標值；不可行點即使數值更好也不能成為最優解。最優值是一個數，argmin 或 argmax 是所有達成該值的可行點集合，可能有平手。",
          "en": "Decide feasibility first, then compare objective values; an infeasible point cannot be optimal even if its value is better. The optimal value is a number, and argmin or argmax is the set of all feasible points attaining it, possibly with ties."
        }
      },
      {
        "id": "L_scan_invariant",
        "kind": "lemma",
        "proved_in": [
          "S06.1",
          "S06.2",
          "S06.3"
        ],
        "statement": {
          "zh-Hant": "設 m_k 是 f 在 s_1 到 s_k 上的最小值，A_k 是其中達到 m_k 的點的集合。處理 s_(k+1) 時：若 f(s_(k+1))<m_k，令 m_(k+1)=f(s_(k+1))、A_(k+1)={s_(k+1)}；若相等，令 m_(k+1)=m_k、A_(k+1)=A_k∪{s_(k+1)}；若較大，保持不變。則 m_(k+1)、A_(k+1) 對 s_1 到 s_(k+1) 具有同樣性質。",
          "en": "Let m_k be the minimum of f over s_1 to s_k and A_k the set of those points attaining m_k. When processing s_(k+1): if f(s_(k+1))<m_k set m_(k+1)=f(s_(k+1)) and A_(k+1)={s_(k+1)}; if equal set m_(k+1)=m_k and A_(k+1)=A_k∪{s_(k+1)}; if larger keep both. Then m_(k+1) and A_(k+1) have the same property for s_1 to s_(k+1)."
        }
      }
    ],
    "revision_log": [],
    "numeric_checks": [
      {
        "id": "N1",
        "step": "S03.1",
        "lhs": "0+2*2",
        "rhs": "4"
      },
      {
        "id": "N2",
        "step": "S03.2",
        "lhs": "1+2*1",
        "rhs": "3"
      },
      {
        "id": "N3",
        "step": "S03.3",
        "lhs": "2+2*0",
        "relation": "<",
        "rhs": "3"
      },
      {
        "id": "N4",
        "step": "S05",
        "lhs": "0+2",
        "rhs": "1+1"
      },
      {
        "id": "N5",
        "step": "S05",
        "lhs": "2+2",
        "rhs": "4"
      },
      {
        "id": "N6",
        "step": "S12",
        "lhs": "0+2*0",
        "relation": "<",
        "rhs": "3"
      },
      {
        "id": "N7",
        "step": "S14.3",
        "lhs": "0+2*(3/2)",
        "rhs": "3"
      },
      {
        "id": "N8",
        "step": "S14.3",
        "lhs": "0+3/2",
        "relation": "<",
        "rhs": "2"
      },
      {
        "id": "N9",
        "step": "S14.1",
        "vars": [
          "x",
          "y"
        ],
        "degree": 1,
        "lhs": "x+y",
        "rhs": "(x+2*y)/2+x/2"
      },
      {
        "id": "N10",
        "step": "S11",
        "vars": [
          "x",
          "y"
        ],
        "range": [
          0,
          2
        ],
        "lhs": "(x+y-2)*min(max(x+2*y-2,0),1)",
        "relation": ">=",
        "rhs": "0"
      }
    ]
  },
  "presentation": {
    "md_scope": {
      "zh-Hant": "結論只涵蓋宣告的有限候選集合 C 與其可行子集（MKO 假設 a1、a2）。S14 的實數鬆弛只用來說明有限枚舉不能外推，不建立線性規劃理論、對偶或計算複雜度。不改動 canonical MKO 或英文 edition。",
      "en": "Conclusions cover only the declared finite candidate set C and its feasible subset (MKO assumptions a1 and a2). The real relaxation in S14 serves only to show that a finite enumeration does not extrapolate; no linear programming theory, duality or computational complexity is developed. The canonical MKO and its English edition are not changed."
    },
    "md_symbols": [
      [
        "C",
        "宣告的九個候選點",
        "the nine declared candidates"
      ],
      [
        "g(x,y)=x+2y",
        "限制式左邊",
        "left side of the constraint"
      ],
      [
        "S",
        "可行集合 {(x,y)∈C ∣ x+2y≥3}",
        "feasible set {(x,y)∈C ∣ x+2y≥3}"
      ],
      [
        "f(x,y)=x+y",
        "目標函數",
        "objective function"
      ],
      [
        "m,\\ \\operatorname{argmin}",
        "最優值與所有最優點的集合",
        "optimal value and the set of all optimal points"
      ],
      [
        "s_1,s_2,s_3,s_4,s_5",
        "可行點的掃描次序",
        "scan order of the feasible points"
      ],
      [
        "m_k,\\ A_k",
        "掃描前 k 個可行點後的目前最小值與平手集合",
        "current minimum and tie set after scanning k feasible points"
      ]
    ],
    "md_error_controls": [
      {
        "title": "忽略限制直接挑最小數 / Ignoring the constraint and picking the smallest number",
        "zh": "MKO 指出的誤解之一：九點中 f 的最小數是 f(0,0)=0，但 (0,0) 不可行。必須先依限制算出可行遮罩（S03），只在 S 上比較（S05 以後）。",
        "en": "One misconception named by the MKO: the smallest value of f among the nine points is f(0,0)=0, but (0,0) is infeasible. The feasibility mask must be computed first (S03), and comparisons made on S only (from S05 on)."
      },
      {
        "title": "平手時要回報全部最優點 / With ties, report all optimal points",
        "zh": "MKO 指出的另一個誤解是只回報一個平手解並宣稱唯一。(0,2) 與 (1,1) 都達到 2；掃描演算法在相等情況必須把點加入集合（S06.2），否則只得到 argmin 的一部分。最大化這邊恰好唯一，但那是枚舉的結果，不是一般規律。",
        "en": "Another misconception named by the MKO is reporting one tied solution and calling it unique. (0,2) and (1,1) both attain 2; in the equality case the scan algorithm must add the point to the set (S06.2), or it obtains only part of argmin. On the maximization side the optimum happens to be unique, but that is a result of the enumeration, not a general rule."
      },
      {
        "title": "有限枚舉不外推 / A finite enumeration does not extrapolate",
        "zh": "完整枚舉證明的是宣告的有限清單內的最優性。S14 顯示同一限制在實數上最小值為 3/2，比 2 還小；未列出的候選或連續可行域需要另外的論證。",
        "en": "A complete enumeration proves optimality within the declared finite list. S14 shows that under the same constraint over the reals the minimum is 3/2, smaller than 2; unlisted candidates or continuous feasible regions need a separate argument."
      }
    ],
    "md_open_items": [
      {
        "zh-Hant": "N10 是對 C 全部九點的有限核對，C 恰是這九點，所以它涵蓋宣告的整個候選集合；它不涉及 C 以外的點。",
        "en": "N10 is a finite check over all nine points of C; since C is exactly these points it covers the whole declared candidate set, and it says nothing about points outside C."
      },
      {
        "zh-Hant": "線性規劃、可行多面體、對偶與最優性證書屬於 MKO 的 formal next，不在本稿範圍內。",
        "en": "Linear programming, feasible polyhedra, duality and optimality certificates belong to the MKO's formal next step and are outside this guide."
      }
    ]
  },
  "revision": {
    "id": "production-20261019-adopted-96",
    "source_commit": "b28a5edbd46279b1db2a3f3f48bb3f447e18899f",
    "adopted_source_sha256": "1bd5968b95ef2ca22235bb2a1c2091b089f80b65a2c7d48bcc15eaf7b1e649e2",
    "original_source_sha256": "1bd5968b95ef2ca22235bb2a1c2091b089f80b65a2c7d48bcc15eaf7b1e649e2",
    "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."
  }
}
