{
  "schema_version": "ocme-reviewed-question-reader-v1",
  "question_id": "q-20261014-advance-20261031-r02-bipartite-graph-0057",
  "pilot_number": "R0030-15557",
  "number": 15557,
  "family_id": "qf-mod31-bipartite-odd-cycle",
  "title": {
    "zh-Hant": "第 15557 題：二分圖",
    "en": "Question 15557: An Actual Simple Odd Cycle Certifies Nonbipartiteness"
  },
  "original_question": {
    "schema_version": "ocme-question-v0.1",
    "id": "q-20261014-advance-20261031-r02-bipartite-graph-0057",
    "batch_id": "batch-20261014-advance-20261031-r02-bipartite-graph-foundations",
    "language": "zh-Hant",
    "source_mko_ids": [
      "mko-bipartite-graph"
    ],
    "title_zh": "二分圖",
    "stem_zh": "完整有限無向無loop簡單圖。操作=bipartite-odd-cycle；資料={\"n\":6,\"edges\":[[0,1],[1,2],[0,2],[4,5],[3,5]],\"cycle\":[0,1,2]}。請依 [cycle,cycle_edges,length,certificate,conclusion] 欄序回答。",
    "answer": {
      "kind": "expression",
      "value": "([0, 1, 2], [[0, 1], [1, 2], [0, 2]], 3, 是, odd_cycle_proves_nonbipartite)",
      "explanation_zh": "Wave4收束核對=([0, 1, 2], [[0, 1], [1, 2], [0, 2]], 3, 是, odd_cycle_proves_nonbipartite)；依完整明示資料重算；兩部互斥且完整cover所有頂點並逐邊跨部；失敗partition不證非二分；奇cycle才是本輪否證。"
    },
    "difficulty": {
      "band": "undergraduate_core",
      "level": 1,
      "skills": [
        "二分圖"
      ]
    },
    "variant": {
      "family_id": "qf-mod31-bipartite-odd-cycle",
      "seed": 202610312057,
      "parameters": {
        "n": 6,
        "edges": [
          [
            0,
            1
          ],
          [
            1,
            2
          ],
          [
            0,
            2
          ],
          [
            4,
            5
          ],
          [
            3,
            5
          ]
        ],
        "cycle": [
          0,
          1,
          2
        ],
        "domain": "Complete_finite_simple_graph_bipartition",
        "operation": "bipartite-odd-cycle",
        "semantic_template": "qf-mod31-bipartite-odd-cycle/{\"cycle\":[0,1,2],\"edges\":[[0,1],[0,2],[1,2],[3,5],[4,5]],\"n\":6}"
      }
    },
    "verification": {
      "status": "candidate",
      "checks": [
        "producer_exact_finite_model",
        "producer_source_snapshot_check",
        "producer_substantive_template_deduplication",
        "producer_json_schema"
      ],
      "warning_zh": "候選須由主端獨立重算；不構成人工審定、一般不可數性／色數最優性／更強機率收斂／商域、optional stopping、Lean或形式Evidence。"
    },
    "provenance": {
      "generator_role": "question_producer",
      "generator_model": "model_unknown",
      "generated_at": "2026-10-14",
      "contract_version": "ocme-question-factory-v0.1"
    }
  },
  "original_english_edition": {
    "schema_version": "ocme-question-localization-v0.1",
    "question_id": "q-20261014-advance-20261031-r02-bipartite-graph-0057",
    "batch_id": "batch-20261014-advance-20261031-r02-bipartite-graph-foundations",
    "locale": "en",
    "translation_state": "ai_candidate",
    "source": {
      "question_sha256": "bc873238e80599327c45fd4b20a38441f4965da4713f64e147b5591e61bb4c89",
      "family_id": "qf-mod31-bipartite-odd-cycle",
      "seed": 202610312057,
      "semantic_template": "qf-mod31-bipartite-odd-cycle/{\"cycle\":[0,1,2],\"edges\":[[0,1],[0,2],[1,2],[3,5],[4,5]],\"n\":6}"
    },
    "fields": {
      "title": "An Actual Simple Odd Cycle Certifies Nonbipartiteness",
      "stem": "Use the complete finite undirected loop-free simple graph on Fin(6)={0,…,5} with edges=[[0, 1], [1, 2], [0, 2], [4, 5], [3, 5]]. Normalize each edge increasingly, then sort edges lexicographically; reversed duplicates and loops are forbidden. Keep isolated vertices in the carrier. No directed-graph conclusion is inferred. Ordered cycle vertices=[0, 1, 2], with the closing edge from the last back to the first implicit. Vertices must be distinct, the cycle length odd and at least 3, and every cycle edge present. Give (cycle,cycle_edges,length,certificate?,odd_cycle_proves_nonbipartite). Normalize each edge's endpoints but retain traversal order in cycle_edges.",
      "answer": {
        "kind": "expression",
        "value": "([0, 1, 2], [[0, 1], [1, 2], [0, 2]], 3, Yes, odd_cycle_proves_nonbipartite)",
        "explanation": "Alternating between two parts around an odd cycle cannot return consistently to the initial part. The certificate requires the full actual cycle, not merely a failed candidate partition or an incomplete walk. The exact result, retaining the requested order, is ([0, 1, 2], [[0, 1], [1, 2], [0, 2]], 3, Yes, odd_cycle_proves_nonbipartite)."
      },
      "skills": [
        "An Actual Simple Odd Cycle Certifies Nonbipartiteness"
      ],
      "verification_warning": "This is a candidate exercise. Mechanical recomputation checks only the stated conditions and this instance; it is neither a formal proof nor human review."
    }
  },
  "givens": [
    {
      "id": "G001",
      "text": {
        "zh-Hant": "完整有限無向無loop簡單圖。操作=bipartite-odd-cycle；資料={\"n\":6,\"edges\":[[0,1],[1,2],[0,2],[4,5],[3,5]],\"cycle\":[0,1,2]}。請依 [cycle,cycle_edges,length,certificate,conclusion] 欄序回答。",
        "en": "Use the complete finite undirected loop-free simple graph on Fin(6)={0,…,5} with edges=[[0, 1], [1, 2], [0, 2], [4, 5], [3, 5]]. Normalize each edge increasingly, then sort edges lexicographically; reversed duplicates and loops are forbidden. Keep isolated vertices in the carrier. No directed-graph conclusion is inferred. Ordered cycle vertices=[0, 1, 2], with the closing edge from the last back to the first implicit. Vertices must be distinct, the cycle length odd and at least 3, and every cycle edge present. Give (cycle,cycle_edges,length,certificate?,odd_cycle_proves_nonbipartite). Normalize each edge's endpoints but retain traversal order in cycle_edges."
      }
    }
  ],
  "steps": [
    {
      "id": "S001",
      "uses": [
        "G001"
      ],
      "before": "complete undirected vertex carrier Fin(6);original edges=[[0, 1], [1, 2], [0, 2], [4, 5], [3, 5]]",
      "after": "normalized sorted simple edges=[[0, 1], [0, 2], [1, 2], [3, 5], [4, 5]];all vertices including isolates=[0, 1, 2, 3, 4, 5]",
      "relation": "implies",
      "rule_id": "graph_complete_simple_carrier_normalized_edge_order",
      "conditions": [],
      "explanation": {
        "zh-Hant": "逐邊先排端點再把邊作字典序排序，反向重複仍是同一邊而須拒絕；loop亦拒絕。完整載體包括沒有邊的頂點，不能從邊表遺漏它們。",
        "en": "Normalize endpoints and then sort edges lexicographically.Reversed duplicates are still duplicates and are rejected,as are loops.The complete carrier includes vertices absent from the edge list."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S002",
      "uses": [
        "G001",
        "S001"
      ],
      "before": "ordered distinct cycle vertices=[0, 1, 2];length=3;closing last-first edge is implicit",
      "after": "assume a valid two-part assignment;swap names if needed so first vertex has part0",
      "relation": "implies",
      "rule_id": "odd_cycle_two_part_assumption_not_failed_sample",
      "conditions": [],
      "explanation": {
        "zh-Hant": "假設有有效二分，把第一點所在部命名0不失一般性；每經一條真實cycle邊就必換部。頂點清單不重複首點，最後閉合邊另核。",
        "en": "Assume a valid bipartition and name its first vertex's part0 without loss of generality.Every actual cycle edge must flip parts.The list does not repeat its first vertex;the closing edge is checked separately."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S003",
      "uses": [
        "G001",
        "S002"
      ],
      "before": "odd cycle edge0 forced next part := sub(1, 0)",
      "after": "odd cycle edge0 forced next part = 1",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原始角色及已核中間量精確計算，保留索引、符號、分母與運算所在載體。",
        "en": "Compute exactly from original roles and established intermediates,retaining indices,signs,denominators and the operation's carrier."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 odd cycle edge0 forced next part，不以小數近似替代。",
          "en": "Recompute odd cycle edge0 forced next part with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sub",
        "inputs": [
          "1",
          "0"
        ],
        "output": "1",
        "label": "odd cycle edge0 forced next part"
      }
    },
    {
      "id": "S004",
      "uses": [
        "G001",
        "S003"
      ],
      "before": "cycle traversal index=0;from=0;to=1;normalized actual edge=[0, 1];forced current part=0",
      "after": "forced next part=1;edge present=是",
      "relation": "implies",
      "rule_id": "odd_cycle_every_edge_including_closure",
      "conditions": [],
      "explanation": {
        "zh-Hant": "保留走訪順序，只正規化單邊端點；把原完整圖中的存在性和換部義務逐步列出，包含最後回到起點。",
        "en": "Keep traversal order while normalizing each edge.Show both its membership in the complete graph and the forced part flip,including the final return."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S005",
      "uses": [
        "G001",
        "S004"
      ],
      "before": "odd cycle edge1 forced next part := sub(1, 1)",
      "after": "odd cycle edge1 forced next part = 0",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原始角色及已核中間量精確計算，保留索引、符號、分母與運算所在載體。",
        "en": "Compute exactly from original roles and established intermediates,retaining indices,signs,denominators and the operation's carrier."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 odd cycle edge1 forced next part，不以小數近似替代。",
          "en": "Recompute odd cycle edge1 forced next part with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sub",
        "inputs": [
          "1",
          "1"
        ],
        "output": "0",
        "label": "odd cycle edge1 forced next part"
      }
    },
    {
      "id": "S006",
      "uses": [
        "G001",
        "S005"
      ],
      "before": "cycle traversal index=1;from=1;to=2;normalized actual edge=[1, 2];forced current part=1",
      "after": "forced next part=0;edge present=是",
      "relation": "implies",
      "rule_id": "odd_cycle_every_edge_including_closure",
      "conditions": [],
      "explanation": {
        "zh-Hant": "保留走訪順序，只正規化單邊端點；把原完整圖中的存在性和換部義務逐步列出，包含最後回到起點。",
        "en": "Keep traversal order while normalizing each edge.Show both its membership in the complete graph and the forced part flip,including the final return."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S007",
      "uses": [
        "G001",
        "S006"
      ],
      "before": "odd cycle edge2 forced next part := sub(1, 0)",
      "after": "odd cycle edge2 forced next part = 1",
      "relation": "calculation",
      "rule_id": "exact_rational_arithmetic",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原始角色及已核中間量精確計算，保留索引、符號、分母與運算所在載體。",
        "en": "Compute exactly from original roles and established intermediates,retaining indices,signs,denominators and the operation's carrier."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以精確有理數重算 odd cycle edge2 forced next part，不以小數近似替代。",
          "en": "Recompute odd cycle edge2 forced next part with exact rational arithmetic, not rounded decimals."
        }
      },
      "arithmetic": {
        "operation": "sub",
        "inputs": [
          "1",
          "0"
        ],
        "output": "1",
        "label": "odd cycle edge2 forced next part"
      }
    },
    {
      "id": "S008",
      "uses": [
        "G001",
        "S007"
      ],
      "before": "cycle traversal index=2;from=2;to=0;normalized actual edge=[0, 2];forced current part=0",
      "after": "forced next part=1;edge present=是",
      "relation": "implies",
      "rule_id": "odd_cycle_every_edge_including_closure",
      "conditions": [],
      "explanation": {
        "zh-Hant": "保留走訪順序，只正規化單邊端點；把原完整圖中的存在性和換部義務逐步列出，包含最後回到起點。",
        "en": "Keep traversal order while normalizing each edge.Show both its membership in the complete graph and the forced part flip,including the final return."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S009",
      "uses": [
        "G001",
        "S008"
      ],
      "before": "odd length=3;initial vertex=0 assumed part0;forced closing part=1",
      "after": "same first vertex would have both parts0 and1;odd_cycle_proves_nonbipartite",
      "relation": "implies",
      "rule_id": "odd_cycle_parity_contradiction_universal_partition",
      "conditions": [],
      "explanation": {
        "zh-Hant": "奇數次換部回到同一點卻要求另一部，矛盾。因此不存在任何有效二分，不只是某次嘗試失敗；其他孤立或額外頂點不消除這條奇圈。",
        "en": "An odd number of flips returns to the same vertex in the opposite part,a contradiction.No valid bipartition exists,not merely a failed attempt.Extra or isolated vertices do not remove this odd cycle."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "回到原始資料與本步條件核對，不把單向推論誤稱等價。",
          "en": "Check against the original data and this step's premises; a one-way implication is not an equivalence."
        }
      },
      "arithmetic": null
    }
  ],
  "math_model": {
    "result": [
      [
        0,
        1,
        2
      ],
      [
        [
          0,
          1
        ],
        [
          1,
          2
        ],
        [
          0,
          2
        ]
      ],
      3,
      true,
      "odd_cycle_proves_nonbipartite"
    ]
  },
  "conclusion": {
    "canonical_value": "([0, 1, 2], [[0, 1], [1, 2], [0, 2]], 3, 是, odd_cycle_proves_nonbipartite)",
    "explanation": {
      "zh-Hant": "依上列完整代值及條件核對得到原題答案；原題編號、格式與狀態保持不變。",
      "en": "The full substitutions and premise checks give the original answer; source identity,format and status are unchanged."
    }
  },
  "definition_note": {
    "zh-Hant": "沿用原題明示的論域、假設與來源 MKO 定義。本題已完成第二對話數理與中英語義覆核，並由原始參數逐題獨立重算模型、答案與每個算術步驟；原題仍為 candidate。",
    "en": "Use the original question domain, assumptions and cited MKO definitions. This item has second-context mathematical and bilingual review, with the model, answer and every arithmetic step independently recomputed from the original parameters; the source question remains a candidate."
  },
  "source": {
    "input_commit": "0f7be61e2c22317a4075561dc822c87d881a50db",
    "question_binding": {
      "batch_id": "batch-20261014-advance-20261031-r02-bipartite-graph-foundations",
      "batch_path": "public/data/questions/batches/batch-20261014-advance-20261031-r02-bipartite-graph-foundations/questions.jsonl",
      "batch_sha256": "013fee61d2719d2970c6b2a7d34b0bd208896e85fff9c06a97c22ed5aaf25113",
      "original_line": 57,
      "original_line_sha256": "855ba38a958a9ced04bd396f2c0c28c90e5d664a7ada75107b6e5ea104e08ca3",
      "question_compact_sha256": "bc873238e80599327c45fd4b20a38441f4965da4713f64e147b5591e61bb4c89",
      "english_row_compact_sha256": "f2cd47f4c239bb63badfd1df940abe879019bddedea1354cf0c96adc3ba1f83a",
      "english_manifest_path": "public/data/i18n/editions/batch-20261014-advance-20261031-r02-bipartite-graph-foundations.en.json",
      "english_rows_path": "public/data/i18n/questions/batch-20261014-advance-20261031-r02-bipartite-graph-foundations.en.jsonl"
    },
    "mko_bindings": {
      "mko-bipartite-graph": {
        "sha256": "c54116e1bcf2bbb83b39260399271673ba3ad43ec2e0b27732fd148d843f7aa1",
        "english_sha256": "472cf9fff25f9a4141e6af6495349bcca9b7d0bc995a018899ee403da6dc3ab1",
        "original_path": "public/data/mko/bipartite-graph.json",
        "english_path": "public/data/i18n/editions/mko-bipartite-graph.en.json"
      }
    },
    "selected_manifest_sha256": "5233edba9654a6cffd8b6b2d83c932f82ded15f9c0b7c733bd049943e672acff",
    "selected_part_sha256": "d85118d74859ec7e59736714f767732c6ec092eaa0bf5279abeb28e4a628e3c3",
    "original_candidate_sha256": "881be9737b89962ce5dbba60d4283bad9894df9116456aba53025324545b5461",
    "original_candidate_line_sha256": "881be9737b89962ce5dbba60d4283bad9894df9116456aba53025324545b5461"
  },
  "historical_source_state": {
    "review_state": {
      "derivation": "candidate_authored_and_locally_checked",
      "source_question_state": "candidate",
      "independent_AI_or_human_review": "NOT_PERFORMED",
      "formalization": "not_formalized",
      "Lean": "NOT_RUN"
    },
    "scope_note": {
      "zh-Hant": "來源綁定教學推導候選；精確核對不等於獨立AI／人工審查或一般形式證明。原題、答案、MKO、公式、AST與歷史不變。",
      "en": "Source-bound pedagogical derivation candidate.Exact checking is not independent AI/human review or general formal proof.Original questions,answers,MKOs,formulas,ASTs and history remain unchanged."
    },
    "label": "Frozen producer metadata; current per-question review is separate below."
  },
  "revision": {
    "id": "review-20261026-007-p31",
    "review_date": "2026-10-26",
    "owner_authorized_reader_publication": true,
    "scope": "One hundred sixty family prototypes and their mathematical/bilingual reasoning variants, stems, boundary statements and every distinct explanation shape were reviewed in a context independent of the producer; parameter substitutions, source bindings, full math models, both answer strings and every arithmetic step were independently reconstructed per question from the original parameters only, with negative controls. This grouped method does not claim a separate literal AI reading of every repeated sentence or an extra AI voter.",
    "review_receipts": {
      "semantic_review_sha256": "73bc08066ffb1a81eacb2d4e288d03f522aeefd3949fa0d97da41b484ed737bc",
      "question_first_witness_sha256": "ac120452a208b257b8270f38351a09dcd832cdbc8d9db6b69933f83e43cc9336"
    },
    "status": "second_context_reviewed",
    "mathematical_semantics": true,
    "bilingual_semantics": true,
    "steps_reviewed": 9,
    "method": "family_template_semantic_review_plus_independent_per_instance_reconstruction",
    "exact_question_first_check": {
      "model_sha256": "403804bfbd0e4c4d8e2837fdd8aa98db32c41765753ca0fb3bb2eee80c69cf4f",
      "arithmetic_steps": 3
    },
    "uses_answer_as_premise": false,
    "human_review": "NOT_PERFORMED",
    "formalization": "not_formalized",
    "Lean": "NOT_RUN",
    "Canonical_truth_promotion": false,
    "authority": "Owner-authorized reviewed reader publication; original question/candidate states remain historical and unchanged."
  }
}
