{
  "schema_version": "ocme-reviewed-question-reader-v1",
  "question_id": "q-20261015-advance-20261117-r04-finite-product-topology-0042",
  "pilot_number": "R0052-26742",
  "number": 26742,
  "family_id": "qf-mod48-product-projection-continuity",
  "title": {
    "zh-Hant": "第 26742 題：有限乘積拓撲",
    "en": "Question 26742: Each Coordinate Projection Has Open Preimages for Every Factor Open"
  },
  "original_question": {
    "schema_version": "ocme-question-v0.1",
    "id": "q-20261015-advance-20261117-r04-finite-product-topology-0042",
    "batch_id": "batch-20261015-advance-20261117-r04-finite-product-topology-foundations",
    "language": "zh-Hant",
    "source_mko_ids": [
      "mko-finite-product-topology"
    ],
    "title_zh": "有限乘積拓撲",
    "stem_zh": "完整finite factor topologies、Cartesian carrier與rectangle-union生成責任。操作=product-projection-continuity；資料={\"x_points\":[0,1,2,3],\"x_topology\":[[],[0,1,2,3],[0,1,2]],\"y_points\":[100,101],\"y_topology\":[[],[100,101]]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。",
    "answer": {
      "kind": "expression",
      "value": "([[[], [], 是], [[0, 1, 2, 3], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], 是], [[0, 1, 2], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], 是]], [[[], [], 是], [[100, 101], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], 是]], 是, 是, 是, all_projection_preimages_are_open)",
      "explanation_zh": "Wave6第十一層核對=([[[], [], 是], [[0, 1, 2, 3], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], 是], [[0, 1, 2], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], 是]], [[[], [], 是], [[100, 101], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], 是]], 是, 是, 是, all_projection_preimages_are_open)；依完整明示資料獨立重算；projections與coordinate criterion在完整product topology上核對；basic rectangles不等於全部opens；finite product等於box不得外推到infinite product。"
    },
    "difficulty": {
      "band": "undergraduate_core",
      "level": 2,
      "skills": [
        "有限乘積拓撲"
      ]
    },
    "variant": {
      "family_id": "qf-mod48-product-projection-continuity",
      "seed": 202611174042,
      "parameters": {
        "x_points": [
          0,
          1,
          2,
          3
        ],
        "x_topology": [
          [],
          [
            0,
            1,
            2,
            3
          ],
          [
            0,
            1,
            2
          ]
        ],
        "y_points": [
          100,
          101
        ],
        "y_topology": [
          [],
          [
            100,
            101
          ]
        ],
        "domain": "Complete_finite_product_topology",
        "operation": "product-projection-continuity",
        "semantic_template": "product-projection-continuity|{x_points:[0,1,2,3],x_topology:[[],[0,1,2,3],[0,1,2]],y_points:[100,101],y_topology:[[],[100,101]]}"
      }
    },
    "verification": {
      "status": "candidate",
      "checks": [
        "producer_exact_finite_or_symbolic_model",
        "producer_source_snapshot_check",
        "producer_substantive_template_deduplication",
        "producer_json_schema"
      ],
      "warning_zh": "候選須主端重算；不構成一般series、uniform-limit或topology定理證明、人工審定、Lean或Evidence。"
    },
    "provenance": {
      "generator_role": "question_producer",
      "generator_model": "model_unknown",
      "generated_at": "2026-10-15",
      "contract_version": "ocme-question-factory-v0.1"
    }
  },
  "original_english_edition": {
    "schema_version": "ocme-question-localization-v0.1",
    "question_id": "q-20261015-advance-20261117-r04-finite-product-topology-0042",
    "batch_id": "batch-20261015-advance-20261117-r04-finite-product-topology-foundations",
    "locale": "en",
    "translation_state": "ai_candidate",
    "source": {
      "question_sha256": "1ab0502d5d8e7358dcc7dd7f219b2c0f4b881509974cb3573967948777b85df2",
      "family_id": "qf-mod48-product-projection-continuity",
      "seed": 202611174042,
      "semantic_template": "product-projection-continuity|{x_points:[0,1,2,3],x_topology:[[],[0,1,2,3],[0,1,2]],y_points:[100,101],y_topology:[[],[100,101]]}"
    },
    "fields": {
      "title": "Each Coordinate Projection Has Open Preimages for Every Factor Open",
      "stem": "Use complete first-factor points=[0, 1, 2, 3], topology=[[], [0, 1, 2, 3], [0, 1, 2]], second-factor points=[100, 101], topology=[[], [100, 101]]. Ordered product pairs retain coordinate types; qualify both entire finite topologies before generating every rectangle union. Give (first_projection_preimages, second_projection_preimages, first_projection_continuous, second_projection_continuous, projection_certificate, certificate).",
      "answer": {
        "kind": "expression",
        "value": "([[[], [], Yes], [[0, 1, 2, 3], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], Yes], [[0, 1, 2], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], Yes]], [[[], [], Yes], [[100, 101], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], Yes]], Yes, Yes, Yes, all_projection_preimages_are_open)",
        "explanation": "For every open of each factor retain its entire cylinder preimage and open flag in the full generated product. Check both projections, not just their values on a sample of points. No general universal-property proof is supplied by finite enumeration. The exact result, retaining the requested order, is ([[[], [], Yes], [[0, 1, 2, 3], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], Yes], [[0, 1, 2], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], Yes]], [[[], [], Yes], [[100, 101], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], Yes]], Yes, Yes, Yes, all_projection_preimages_are_open)."
      },
      "skills": [
        "Each Coordinate Projection Has Open Preimages for Every Factor Open"
      ],
      "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": "完整finite factor topologies、Cartesian carrier與rectangle-union生成責任。操作=product-projection-continuity；資料={\"x_points\":[0,1,2,3],\"x_topology\":[[],[0,1,2,3],[0,1,2]],\"y_points\":[100,101],\"y_topology\":[[],[100,101]]}。請依 exact_ordered_tuple_declared_by_interface 欄序回答。",
        "en": "Use complete first-factor points=[0, 1, 2, 3], topology=[[], [0, 1, 2, 3], [0, 1, 2]], second-factor points=[100, 101], topology=[[], [100, 101]]. Ordered product pairs retain coordinate types; qualify both entire finite topologies before generating every rectangle union. Give (first_projection_preimages, second_projection_preimages, first_projection_continuous, second_projection_continuous, projection_certificate, certificate)."
      }
    }
  ],
  "steps": [
    {
      "id": "S001",
      "uses": [
        "G001"
      ],
      "before": "source roles = [product-projection-continuity]",
      "after": "derived = [[first_preimage_audit, second_preimage_audit, first_continuous, second_continuous, valid, certificate]]",
      "relation": "implies",
      "rule_id": "source_ordered_fields_without_JS",
      "conditions": [],
      "explanation": {
        "zh-Hant": "直接列出此操作及mode的完整來源欄序，不需JavaScript；布林、字串與null角色保持區別，不補欄或以答案形狀猜介面。",
        "en": "List this operation/mode exact source field order without JavaScript.Keep Boolean,string and null roles distinct;do not pad fields or infer the interface from answer shape."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S002",
      "uses": [
        "G001",
        "S001"
      ],
      "before": "source roles = [product ORIGINAL X, [0, 1, 2, 3], [[], [0, 1, 2, 3], [0, 1, 2]], 否]",
      "after": "derived = [[0, 1, 2, 3], [[], [0, 1, 2, 3], [0, 1, 2]], [[0, 0, 0, 0, 是, 是], [0, 1, 15, 0, 是, 是], [0, 2, 7, 0, 是, 是], [1, 0, 15, 0, 是, 是], [1, 1, 15, 15, 是, 是], [1, 2, 15, 7, 是, 是], [2, 0, 7, 0, 是, 是], [2, 1, 15, 7, 是, 是], [2, 2, 7, 7, 是, 是]]]",
      "relation": "implies",
      "rule_id": "Topology_full_typed_carrier_and_ALL_pair_axioms",
      "conditions": [],
      "explanation": {
        "zh-Hant": "保留JSON型別，set與open族依來源English序。逐全部open pair驗union及intersection，含空集與全集；有限族的二元閉包給任意union閉包，不由抽樣認定topology。",
        "en": "Retain JSON types and English source ordering of sets and open families.Check union/intersection for every open pair and empty/full sets;in a finite family binary closure gives arbitrary-union closure,not sampled qualification."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S003",
      "uses": [
        "G001",
        "S002"
      ],
      "before": "source roles = [product ORIGINAL Y, [100, 101], [[], [100, 101]], 否]",
      "after": "derived = [[100, 101], [[], [100, 101]], [[0, 0, 0, 0, 是, 是], [0, 1, 3, 0, 是, 是], [1, 0, 3, 0, 是, 是], [1, 1, 3, 3, 是, 是]]]",
      "relation": "implies",
      "rule_id": "Topology_full_typed_carrier_and_ALL_pair_axioms",
      "conditions": [],
      "explanation": {
        "zh-Hant": "保留JSON型別，set與open族依來源English序。逐全部open pair驗union及intersection，含空集與全集；有限族的二元閉包給任意union閉包，不由抽樣認定topology。",
        "en": "Retain JSON types and English source ordering of sets and open families.Check union/intersection for every open pair and empty/full sets;in a finite family binary closure gives arbitrary-union closure,not sampled qualification."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S004",
      "uses": [
        "G001",
        "S003"
      ],
      "before": "source roles = [[0, 1, 2, 3], [[], [0, 1, 2, 3], [0, 1, 2]], [100, 101], [[], [100, 101]]]",
      "after": "derived = [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], []]]",
      "relation": "implies",
      "rule_id": "Product_typed_cartesian_carrier_AND_ALL_basic_rectangles",
      "conditions": [],
      "explanation": {
        "zh-Hant": "列全部typed ordered pairs及全部U×V基底矩形，重複空矩形合併；rectangle界限是來源計算profile，不是一般定理限制。",
        "en": "List every typed ordered pair and every basic rectangle U times V,deduplicating empty rectangles.The rectangle bound is a source-computation profile,not a theorem limitation."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S005",
      "uses": [
        "G001",
        "S004"
      ],
      "before": "source roles = [0, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[]]]",
      "after": "derived = [[[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], []]]",
      "relation": "implies",
      "rule_id": "Product_EACH_rectangle_ALL_unions_induction",
      "conditions": [],
      "explanation": {
        "zh-Hant": "加入此矩形時保留舊union並加入每個舊union與它的聯集；歸納後正是全部rectangle子族的union，不能只把矩形叫成所有開集。",
        "en": "When adding this rectangle retain every old union and its union with the rectangle.Inductively this gives all unions of rectangle subfamilies,not just rectangles as opens."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S006",
      "uses": [
        "G001",
        "S005"
      ],
      "before": "source roles = [1, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], []]]",
      "after": "derived = [[[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], []]]",
      "relation": "implies",
      "rule_id": "Product_EACH_rectangle_ALL_unions_induction",
      "conditions": [],
      "explanation": {
        "zh-Hant": "加入此矩形時保留舊union並加入每個舊union與它的聯集；歸納後正是全部rectangle子族的union，不能只把矩形叫成所有開集。",
        "en": "When adding this rectangle retain every old union and its union with the rectangle.Inductively this gives all unions of rectangle subfamilies,not just rectangles as opens."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S007",
      "uses": [
        "G001",
        "S006"
      ],
      "before": "source roles = [2, [], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], []]]",
      "after": "derived = [[[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], []]]",
      "relation": "implies",
      "rule_id": "Product_EACH_rectangle_ALL_unions_induction",
      "conditions": [],
      "explanation": {
        "zh-Hant": "加入此矩形時保留舊union並加入每個舊union與它的聯集；歸納後正是全部rectangle子族的union，不能只把矩形叫成所有開集。",
        "en": "When adding this rectangle retain every old union and its union with the rectangle.Inductively this gives all unions of rectangle subfamilies,not just rectangles as opens."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S008",
      "uses": [
        "G001",
        "S007"
      ],
      "before": "source roles = [product GENERATED all-union topology, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], []], 是]",
      "after": "derived = [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], []], [[0, 0, 255, 255, 是, 是], [0, 1, 255, 63, 是, 是], [0, 2, 255, 0, 是, 是], [1, 0, 255, 63, 是, 是], [1, 1, 63, 63, 是, 是], [1, 2, 63, 0, 是, 是], [2, 0, 255, 0, 是, 是], [2, 1, 63, 0, 是, 是], [2, 2, 0, 0, 是, 是]]]",
      "relation": "implies",
      "rule_id": "Topology_full_typed_carrier_and_ALL_pair_axioms",
      "conditions": [],
      "explanation": {
        "zh-Hant": "保留JSON型別，set與open族依來源English序。逐全部open pair驗union及intersection，含空集與全集；有限族的二元閉包給任意union閉包，不由抽樣認定topology。",
        "en": "Retain JSON types and English source ordering of sets and open families.Check union/intersection for every open pair and empty/full sets;in a finite family binary closure gives arbitrary-union closure,not sampled qualification."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S009",
      "uses": [
        "G001",
        "S008"
      ],
      "before": "source roles = [product first projection, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], []], [0, 1, 2, 3], [[], [0, 1, 2, 3], [0, 1, 2]], [[[0, 100], 0], [[0, 101], 0], [[1, 100], 1], [[1, 101], 1], [[2, 100], 2], [[2, 101], 2], [[3, 100], 3], [[3, 101], 3]]]",
      "after": "derived = [[[[], [], 是], [[0, 1, 2, 3], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], 是], [[0, 1, 2], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], 是]], 是]",
      "relation": "implies",
      "rule_id": "Continuity_ALL_target_open_preimages",
      "conditions": [],
      "explanation": {
        "zh-Hant": "連續性逐所有target開集的完整反像驗證，不是只看單點、image開集或有限samples。map先依原始domain對齊image，再連同image排序。",
        "en": "Test full preimages of every target open,not just points,open images or samples.Align images with the ORIGINAL domain before sorting the rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S010",
      "uses": [
        "G001",
        "S009"
      ],
      "before": "source roles = [product second projection, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], []], [100, 101], [[], [100, 101]], [[[0, 100], 100], [[0, 101], 101], [[1, 100], 100], [[1, 101], 101], [[2, 100], 100], [[2, 101], 101], [[3, 100], 100], [[3, 101], 101]]]",
      "after": "derived = [[[[], [], 是], [[100, 101], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], 是]], 是]",
      "relation": "implies",
      "rule_id": "Continuity_ALL_target_open_preimages",
      "conditions": [],
      "explanation": {
        "zh-Hant": "連續性逐所有target開集的完整反像驗證，不是只看單點、image開集或有限samples。map先依原始domain對齊image，再連同image排序。",
        "en": "Test full preimages of every target open,not just points,open images or samples.Align images with the ORIGINAL domain before sorting the rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "反查原題的完整資料、型別、欄序與本步條件；有限核對不升格為無限定理的形式證明。",
          "en": "Reverse-check the complete original data,types,field order and premises;finite audits are not formal proofs of infinite theorems."
        }
      },
      "arithmetic": null
    }
  ],
  "math_model": {
    "result": [
      [
        [
          [],
          [],
          true
        ],
        [
          [
            0,
            1,
            2,
            3
          ],
          [
            [
              0,
              100
            ],
            [
              0,
              101
            ],
            [
              1,
              100
            ],
            [
              1,
              101
            ],
            [
              2,
              100
            ],
            [
              2,
              101
            ],
            [
              3,
              100
            ],
            [
              3,
              101
            ]
          ],
          true
        ],
        [
          [
            0,
            1,
            2
          ],
          [
            [
              0,
              100
            ],
            [
              0,
              101
            ],
            [
              1,
              100
            ],
            [
              1,
              101
            ],
            [
              2,
              100
            ],
            [
              2,
              101
            ]
          ],
          true
        ]
      ],
      [
        [
          [],
          [],
          true
        ],
        [
          [
            100,
            101
          ],
          [
            [
              0,
              100
            ],
            [
              0,
              101
            ],
            [
              1,
              100
            ],
            [
              1,
              101
            ],
            [
              2,
              100
            ],
            [
              2,
              101
            ],
            [
              3,
              100
            ],
            [
              3,
              101
            ]
          ],
          true
        ]
      ],
      true,
      true,
      true,
      "all_projection_preimages_are_open"
    ]
  },
  "conclusion": {
    "canonical_value": "([[[], [], 是], [[0, 1, 2, 3], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], 是], [[0, 1, 2], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101]], 是]], [[[], [], 是], [[100, 101], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], 是]], 是, 是, 是, all_projection_preimages_are_open)",
    "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-20261015-advance-20261117-r04-finite-product-topology-foundations",
      "batch_path": "public/data/questions/batches/batch-20261015-advance-20261117-r04-finite-product-topology-foundations/questions.jsonl",
      "batch_sha256": "7c583ca9257d1982c732625797b37ed80cad98fb9918088d09335970ac494481",
      "original_line": 42,
      "original_line_sha256": "c6fb4b148b77cf6946ae36e7abc98851fd5f3c51fa03660a95c994a4d1b686aa",
      "question_compact_sha256": "1ab0502d5d8e7358dcc7dd7f219b2c0f4b881509974cb3573967948777b85df2",
      "english_row_compact_sha256": "ad2de5f6e79ac6138b9be0e8485bc4060dcaf4dba7853567fee131cf674554dc",
      "english_manifest_path": "public/data/i18n/editions/batch-20261015-advance-20261117-r04-finite-product-topology-foundations.en.json",
      "english_rows_path": "public/data/i18n/questions/batch-20261015-advance-20261117-r04-finite-product-topology-foundations.en.jsonl"
    },
    "mko_bindings": {
      "mko-finite-product-topology": {
        "sha256": "9650dd3cf37e29ce4d8b2c6600ead8cb5c0ac577af1f7b69a0aa987341b02d5a",
        "english_sha256": "0010f081607335f5f72fb187f7825140a790a02f8d03038feafa566885063421",
        "original_path": "public/data/mko/finite-product-topology.json",
        "english_path": "public/data/i18n/editions/mko-finite-product-topology.en.json"
      }
    },
    "selected_manifest_sha256": "5233edba9654a6cffd8b6b2d83c932f82ded15f9c0b7c733bd049943e672acff",
    "selected_part_sha256": "a3def7368821a4d3dc7757fefd3c4a099713f8de8fb8e6f3434025e9d7b5a6d0",
    "original_candidate_sha256": "d356c9151f98a8712a25fa4f2f17031678803ef86118e8a4847134a331806673",
    "original_candidate_line_sha256": "d356c9151f98a8712a25fa4f2f17031678803ef86118e8a4847134a331806673"
  },
  "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-010-p53",
    "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": "729b25cbf6bf5cb1d07a21a511ae216ec5fdd54a4a7aa2f7c21156b81ff37252",
      "question_first_witness_sha256": "d1ab788770eaad04f986986e65afb0d55791e8a8c0d747e9a2b499f79fe78df2"
    },
    "status": "second_context_reviewed",
    "mathematical_semantics": true,
    "bilingual_semantics": true,
    "steps_reviewed": 10,
    "method": "family_template_semantic_review_plus_independent_per_instance_reconstruction",
    "exact_question_first_check": {
      "model_sha256": "8dfc685513ff06c8ea9deef9100c167813e6968dde54a2ace26026652955f0fd",
      "arithmetic_steps": 0
    },
    "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."
  }
}
