{
  "schema_version": "ocme-derivation-reader-v1",
  "guide_id": "derivation-mko-linear-program-standard-form-01",
  "mko_id": "mko-linear-program-standard-form",
  "title": {
    "zh-Hant": "slack 的雙向點對應",
    "en": "The two-way point correspondence for slack variables"
  },
  "contract": {
    "schema_version": "ocme-derivation-guide-v0.1",
    "guide_id": "derivation-mko-linear-program-standard-form-01",
    "source": {
      "mko_id": "mko-linear-program-standard-form",
      "commit": "b1b2f1dcf8c50d67a93fe52d95f8eef7b3abba9f",
      "sha256": "cd8b89ab19acb18f321ca46da48146c104e7dad057ad394dffacf6e741ae1314",
      "english_sha256": "2ffa58673107872d4017597a54a07e42ca18a3138d345cea55419ed0c6a330ed"
    },
    "mode": "worked_example",
    "audience_prerequisites": [
      "algebra",
      "lp_form"
    ],
    "goal": {
      "zh-Hant": "把固定 maximize/≤/nonnegative LP 轉為 equality slack form，並核雙向可行點與 objective。",
      "en": "Convert a fixed maximize/≤/nonnegative LP to equality slack form and verify both feasible-point directions and objective."
    },
    "givens": [
      {
        "id": "G1",
        "statement": {
          "zh-Hant": "A=[[1,1],[2,1]],b=(4,5),c=(3,2)；primal maximize 3x_1+2x_2 subject to Ax≤b,x≥0。",
          "en": "A=[[1,1],[2,1]], b=(4,5), c=(3,2); maximize 3*x_1+2*x_2 subject to A*x≤b,x≥0."
        }
      },
      {
        "id": "G2",
        "statement": {
          "zh-Hant": "候選 x=(1,2)。",
          "en": "Candidate x=(1,2)."
        }
      }
    ],
    "steps": [
      {
        "id": "S01",
        "uses": [
          "G1"
        ],
        "before_tex": "A\\in\\mathbb Q^{2\\times2},\\quad b,c,x\\in\\mathbb R^2",
        "after_tex": "\\max c^Tx\\quad\\text{s.t. }Ax\\le b,\\ x\\ge0",
        "relation": "definition",
        "rule": "lp_form",
        "conditions": [],
        "explanation": {
          "zh-Hant": "兩行限制、兩個決策座標及 objective 對齊同一 convention。",
          "en": "Align two constraints, two decision coordinates and the objective with one convention."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "G1"
          ],
          "explanation": {
            "zh-Hant": "不能把另一 minimize/≥ 慣例默認混入。",
            "en": "A different minimize/≥ convention is not silently substituted."
          }
        },
        "leaf_basis": "lp_form"
      },
      {
        "id": "S02",
        "uses": [
          "G1",
          "G2"
        ],
        "before_tex": "Ax=\\begin{pmatrix}1&1\\\\2&1\\end{pmatrix}\\binom12",
        "after_tex": "Ax=(3,4)\\le(4,5),\\quad x\\ge0",
        "relation": "implies",
        "rule": "algebra",
        "conditions": [],
        "explanation": {
          "zh-Hant": "候選點每行相乘並核非負，確為 primal feasible。",
          "en": "Multiply each row and check nonnegativity to qualify the candidate as primal feasible."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "G1",
            "G2"
          ],
          "explanation": {
            "zh-Hant": "不能只核 objective 值。",
            "en": "An objective value alone does not check feasibility."
          }
        },
        "leaf_basis": "algebra"
      },
      {
        "id": "S03",
        "uses": [
          "G1",
          "G2",
          "S02"
        ],
        "before_tex": "s=b-Ax",
        "after_tex": "s=(1,1)\\ge0,\\quad Ax+s=b",
        "relation": "equivalent",
        "rule": "algebra",
        "conditions": [],
        "explanation": {
          "zh-Hant": "slack 是原限制每行尚餘容量，對固定 x 唯一。",
          "en": "Slack is each row's unused capacity and is unique for a fixed x."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "G1",
            "G2",
            "S02"
          ],
          "explanation": {
            "zh-Hant": "slack 符號為 b-Ax，不是反號。",
            "en": "The slack sign is b-A*x, not its negative."
          }
        },
        "leaf_basis": "algebra"
      },
      {
        "id": "S04",
        "uses": [
          "G1"
        ],
        "before_tex": "x\\ge0,\\ Ax\\le b",
        "after_tex": "(x,s)=(x,b-Ax)\\ge0,\\quad Ax+s=b",
        "relation": "implies",
        "rule": "algebra",
        "conditions": [],
        "explanation": {
          "zh-Hant": "對任意原可行點，非負 slack 轉為 equality 可行點。",
          "en": "For an arbitrary original feasible point, nonnegative slack gives an equality-form feasible point."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "G1"
          ],
          "explanation": {
            "zh-Hant": "此步量化任意 x，不只候選 (1,2)。",
            "en": "This quantifies arbitrary x, not only the candidate (1,2)."
          }
        },
        "leaf_basis": "algebra"
      },
      {
        "id": "S05",
        "uses": [
          "G1",
          "S04"
        ],
        "before_tex": "x,s\\ge0,\\quad Ax+s=b",
        "after_tex": "Ax=b-s\\le b,\\quad s=b-Ax",
        "relation": "implies",
        "rule": "algebra",
        "conditions": [],
        "explanation": {
          "zh-Hant": "反向投影回 x 仍可行，並回收同一唯一 slack，故兩邊點一一對應。",
          "en": "Projection back to x is feasible and recovers the same unique slack, giving a bijective correspondence of feasible points."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "G1",
            "S04"
          ],
          "explanation": {
            "zh-Hant": "雙向性不表示原問題一定存在可行點。",
            "en": "Two-way correspondence does not assert that either feasible set is nonempty."
          }
        },
        "leaf_basis": "algebra"
      },
      {
        "id": "S06",
        "uses": [
          "G1",
          "G2",
          "S03"
        ],
        "before_tex": "(c,0)^T(x,s)=c^Tx",
        "after_tex": "(3,2,0,0)\\cdot(1,2,1,1)=7",
        "relation": "equivalent",
        "rule": "algebra",
        "conditions": [],
        "explanation": {
          "zh-Hant": "新 slack 的 objective 係數為零，每個對應點保留原 objective。",
          "en": "New slack variables have zero objective coefficients, preserving the value at every corresponding point."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "G1",
            "G2",
            "S03"
          ],
          "explanation": {
            "zh-Hant": "不能把 slack 加進 objective 而聲稱同一問題。",
            "en": "Adding slack to the objective would change the problem."
          }
        },
        "leaf_basis": "algebra"
      },
      {
        "id": "S07",
        "uses": [
          "G1"
        ],
        "before_tex": "z\\in\\mathbb R\\text{ free}",
        "after_tex": "z=z^+-z^-,\\quad z^+,z^-\\ge0",
        "relation": "implies",
        "rule": "algebra",
        "conditions": [],
        "explanation": {
          "zh-Hant": "正負分裂使 unrestricted 變數可用非負座標表示；例如 -2=(0)-(2)=(1)-(3)，此表示非唯一。",
          "en": "Positive/negative splitting represents a free variable with nonnegative coordinates; -2=0-2=1-3 shows nonuniqueness."
        },
        "reverse_audit": {
          "kind": "premise_audit",
          "required_ids": [
            "G1"
          ],
          "explanation": {
            "zh-Hant": "不可把 free split 的非唯一性誤套到固定 x 的唯一 slack。",
            "en": "Do not confuse nonunique free-variable splitting with unique slack for a fixed x."
          }
        },
        "leaf_basis": "algebra"
      },
      {
        "id": "S08",
        "uses": [
          "G1",
          "S04",
          "S05"
        ],
        "before_tex": "a^Tx\\ge d;\\quad a^Tx=d;\\quad\\min c^Tx",
        "after_tex": "-a^Tx\\le-d;\\quad a^Tx\\le d,\\ -a^Tx\\le-d;\\quad\\max(-c)^Tx",
        "relation": "equivalent",
        "rule": "algebra",
        "conditions": [],
        "explanation": {
          "zh-Hant": "分別列 ≥、等式及 minimize 的合法表示轉換；前兩者可行點相同，最後 objective 最優方向反號。",
          "en": "List the separate conversions for ≥, equality and minimization; the first two preserve feasible points, while the last reverses the objective sign and optimization direction."
        },
        "reverse_audit": {
          "kind": "inverse_equivalence",
          "required_ids": [
            "G1",
            "S04",
            "S05"
          ],
          "explanation": {
            "zh-Hant": "只改表示不供應 feasibility、boundedness 或 attained optimum 證書。",
            "en": "Representation changes do not supply certificates of feasibility, boundedness or attained optima."
          }
        },
        "leaf_basis": "algebra"
      }
    ],
    "result": {
      "zh-Hant": "slack form 與原式可行點及目標雙向對應，候選 slack=(1,1)、值 7；free split 可非唯一。",
      "en": "Slack form preserves feasible points and objectives in both directions; the candidate has slack (1,1) and value 7, while a free split may be nonunique."
    },
    "negative_controls": [
      {
        "claim": {
          "zh-Hant": "s=Ax-b 才是此 ≤ 慣例 slack。",
          "en": "s=A*x-b is slack for this ≤ convention."
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "非負 slack 為 b-Ax。",
          "en": "Nonnegative slack is b-A*x."
        }
      },
      {
        "claim": {
          "zh-Hant": "表示轉換證 LP 一定可行。",
          "en": "Conversion proves every LP feasible."
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "轉換只保留可行集合，不保證非空。",
          "en": "It preserves a feasible set without proving it nonempty."
        }
      },
      {
        "claim": {
          "zh-Hant": "free split 和 slack 都唯一。",
          "en": "Both a free split and slack are unique."
        },
        "expected": "reject",
        "reason": {
          "zh-Hant": "-2=0-2=1-3，free split 非唯一。",
          "en": "-2=0-2=1-3 makes the free split nonunique."
        }
      }
    ],
    "status": "candidate",
    "gaps": [],
    "verification": {
      "structure": "checked_local_script",
      "mathematics": "candidate_argument",
      "formalization": "not_formalized"
    },
    "rule_glossary": [
      {
        "id": "mko_definition",
        "kind": "cited",
        "statement": {
          "zh-Hant": "A為m×n exact rational matrix，b∈R^m、c∈R^n，decision x∈R^n。資格先核dimensions與sign convention。Ax≤b以nonnegative slack s=b-Ax轉為Ax+s=b，並在原點與slack點間雙向保存feasibility及objective c^Tx。unrestricted variable以x=x^+-x^-、x^±≥0 split；≥ constraint乘-1，equality可拆成兩個≤，minimize可negate objective。轉換不證原問題feasible、bounded或存在optimal solution，也不混用另一套standard-form convention。",
          "en": "A is an exact rational m-by-n matrix with matching b,c and decision vector x. Qualify dimensions and the chosen sign convention first. Nonnegative slack s=b−A*x converts A*x≤b to A*x+s=b, preserving feasibility and c^T*x in both directions between original and slack points. A free variable splits as x_plus−x_minus with both parts nonnegative; negate a ≥ constraint, replace equality by opposite ≤ rows, and negate a minimization objective. These conversions do not prove feasibility, boundedness or an optimal solution, and another standard-form convention is not silently substituted."
        },
        "source": {
          "mko_id": "mko-linear-program-standard-form",
          "sha256": "cd8b89ab19acb18f321ca46da48146c104e7dad057ad394dffacf6e741ae1314",
          "commit": "b1b2f1dcf8c50d67a93fe52d95f8eef7b3abba9f"
        }
      },
      {
        "id": "algebra",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "實數域的等式運算；除法前分母必非零，不等式乘正數保持方向。",
          "en": "Use real-field identities; division requires a nonzero denominator and multiplication by a positive number preserves inequalities."
        }
      },
      {
        "id": "lp_form",
        "kind": "prerequisite",
        "statement": {
          "zh-Hant": "固定 primal 為 maximize c^T x subject to Ax≤b,x≥0；slack equality form 為 Ax+s=b、x,s≥0，s=b-Ax；標準對偶為 minimize b^T y subject to A^T y≥c,y≥0。",
          "en": "Fix the primal as maximize c^T*x subject to A*x≤b,x≥0; its slack equality form is A*x+s=b,x,s≥0 with s=b-A*x; the dual minimizes b^T*y subject to A^T*y≥c,y≥0."
        }
      }
    ],
    "revision_log": [],
    "numeric_checks": [
      {
        "id": "lp-point-value",
        "lhs": "3*1+2*2",
        "rhs": "7",
        "step": "S06"
      }
    ]
  },
  "presentation": {
    "md_scope": {
      "zh-Hant": "只證表示轉換，不證所有 LP 可行、有界或有最優點。",
      "en": "Representation conversion only, not universal feasibility, boundedness or existence of optima."
    },
    "md_symbols": [
      [
        "s",
        "非負 slack",
        "nonnegative slack"
      ],
      [
        "z^+,z^-",
        "自由變數的非負分裂",
        "nonnegative split of a free variable"
      ]
    ],
    "md_error_controls": [
      {
        "title": "符號慣例 / Sign convention",
        "zh": "始終固定 maximize、≤、非負變數。",
        "en": "Keep maximize, ≤ and nonnegative variables fixed."
      },
      {
        "title": "雙向點映射 / Two-way point map",
        "zh": "寫出 forward slack 與 reverse projection，objective 另核。",
        "en": "Specify forward slack and reverse projection, and check the objective separately."
      }
    ],
    "md_open_items": []
  },
  "revision": {
    "id": "ocme-new142-reader-adoption-20261021",
    "collection": "coverage-20261021",
    "source_commit": "b1b2f1dcf8c50d67a93fe52d95f8eef7b3abba9f",
    "adopted_source_sha256": "62dd1386a20c65128c0e6a272ab6a528814d264fa4a1b559339f03e3bf70feff",
    "original_source_sha256": "62dd1386a20c65128c0e6a272ab6a528814d264fa4a1b559339f03e3bf70feff",
    "owner_adopted": true,
    "bilingual_sync": "complete_source_bound",
    "formal_Lean": "NOT_RUN",
    "reader_review": "142_of_142_source_bound",
    "wording_review": "original_Lead_decisions_resolved",
    "glossary_reader_paraphrases": [],
    "independent_AI_concurrence": "SCOPED_LEAD_AND_BILINGUAL_CONTEXT_REVIEW",
    "issue_ids": [],
    "parent_manifest_sha256": "d29f4cae8229ebd24f60d496cb1d3cd4ad8c0a4dca9d44daab0c3245c544283a",
    "scope": "Owner-adopted reader revision. Lead and bilingual review concern the recorded text and premises; no new universal or Lean proof, canonical promotion or historical-label rewrite."
  }
}
