{
  "schema_version": "ocme-reviewed-question-reader-v1",
  "question_id": "q-20261011-advance-20261015-r04-composition-0093",
  "pilot_number": "R0060-30718",
  "number": 30718,
  "family_id": "qf-density15-composition-three-map-parentheses",
  "title": {
    "zh-Hant": "第 30718 題：三表括號的兩條路徑",
    "en": "Question 30718: Two Parenthesizations of Three Complete Typed Maps"
  },
  "original_question": {
    "schema_version": "ocme-question-v0.1",
    "id": "q-20261011-advance-20261015-r04-composition-0093",
    "batch_id": "batch-20261011-advance-20261015-r04-composition-foundations",
    "language": "zh-Hant",
    "source_mko_ids": [
      "mko-composition"
    ],
    "title_zh": "三表括號的兩條路徑",
    "stem_zh": "先f後g，明示中間域。Fin(3)=[0, 1, 2]、Fin(3)=[0, 1, 2]、Fin(3)=[0, 1, 2]、Fin(4)=[0, 1, 2, 3]。完整f=[1, 2, 1]、g=[2, 0, 1]、h=[1, 3, 0]。求 ([n,m,k,l], (h∘g)∘f全表, h∘(g∘f)全表, 每列[x,f(x),g(f(x)),h(g(f(x)))], 兩表相同資格)。",
    "answer": {
      "kind": "expression",
      "value": "([3, 3, 3, 4], [1, 3, 1], [1, 3, 1], [[0, 1, 0, 1], [1, 2, 1, 3], [2, 1, 0, 1]], 是)",
      "explanation_zh": "三表括號兩路與型別路徑=([3, 3, 3, 4], [1, 3, 1], [1, 3, 1], [[0, 1, 0, 1], [1, 2, 1, 3], [2, 1, 0, 1]], 是)。先組h∘g與先組g∘f的兩路各查全表，再比較有限來源上的值。合成不當乘法或任意交換，有限路徑非全部函數等式形式證明。"
    },
    "difficulty": {
      "band": "upper_secondary",
      "level": 3,
      "skills": [
        "三表括號的兩條路徑"
      ]
    },
    "variant": {
      "family_id": "qf-density15-composition-three-map-parentheses",
      "seed": 202610154093,
      "parameters": {
        "n": 3,
        "m": 3,
        "k": 3,
        "l": 4,
        "f": [
          1,
          2,
          1
        ],
        "g": [
          2,
          0,
          1
        ],
        "h": [
          1,
          3,
          0
        ],
        "domain": "finite_explicit_composition_protocol",
        "operation": "density15_composition_three_map_parentheses",
        "semantic_template": "qf-density15-composition-three-map-parentheses/[3,3,3,4,[1,2,1],[0,1,0],[1,3,1]]"
      }
    },
    "verification": {
      "status": "candidate",
      "checks": [
        "producer_exact_integer_rational_arithmetic",
        "producer_finite_enumeration",
        "producer_source_snapshot_check",
        "producer_substantive_template_deduplication",
        "producer_json_schema"
      ],
      "warning_zh": "僅為產生端候選及自檢；主端須另做獨立驗收，不構成人工審定、普遍證明或形式 Evidence。"
    },
    "provenance": {
      "generator_role": "question_producer",
      "generator_model": "model_unknown",
      "generated_at": "2026-10-11",
      "contract_version": "ocme-question-factory-v0.1"
    }
  },
  "original_english_edition": {
    "schema_version": "ocme-question-localization-v0.1",
    "question_id": "q-20261011-advance-20261015-r04-composition-0093",
    "batch_id": "batch-20261011-advance-20261015-r04-composition-foundations",
    "locale": "en",
    "translation_state": "ai_candidate",
    "source": {
      "question_sha256": "b749f632d2e0e0ff85af9da5e1754d9dac21d6ac9c11afa1108efe77662daade",
      "family_id": "qf-density15-composition-three-map-parentheses",
      "seed": 202610154093,
      "semantic_template": "qf-density15-composition-three-map-parentheses/[3,3,3,4,[1,2,1],[0,1,0],[1,3,1]]"
    },
    "fields": {
      "title": "Two Parenthesizations of Three Complete Typed Maps",
      "stem": "First f, then g, then h: Fin(3)={0,…,2}→Fin(3)→Fin(3)→Fin(4); complete f=[1, 2, 1], g=[2, 0, 1], h=[1, 3, 0]. Give ([n,m,k,l], complete (h∘g)∘f table, complete h∘(g∘f) table, every [x,f(x),g(f(x)),h(g(f(x)))] row, are the two tables equal?). All cells, including unused cells, must be typed.",
      "answer": {
        "kind": "expression",
        "value": "([3, 3, 3, 4], [1, 3, 1], [1, 3, 1], [[0, 1, 0, 1], [1, 2, 1, 3], [2, 1, 0, 1]], Yes)",
        "explanation": "Compute both parenthesized finite routes completely and compare their sourcewise values; this finite check is not a formal proof of every function identity. The exact result, retaining the requested order, is ([3, 3, 3, 4], [1, 3, 1], [1, 3, 1], [[0, 1, 0, 1], [1, 2, 1, 3], [2, 1, 0, 1]], Yes)."
      },
      "skills": [
        "Two Parenthesizations of Three Complete Typed Maps"
      ],
      "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": "先f後g，明示中間域。Fin(3)=[0, 1, 2]、Fin(3)=[0, 1, 2]、Fin(3)=[0, 1, 2]、Fin(4)=[0, 1, 2, 3]。完整f=[1, 2, 1]、g=[2, 0, 1]、h=[1, 3, 0]。求 ([n,m,k,l], (h∘g)∘f全表, h∘(g∘f)全表, 每列[x,f(x),g(f(x)),h(g(f(x)))], 兩表相同資格)。",
        "en": "First f, then g, then h: Fin(3)={0,…,2}→Fin(3)→Fin(3)→Fin(4); complete f=[1, 2, 1], g=[2, 0, 1], h=[1, 3, 0]. Give ([n,m,k,l], complete (h∘g)∘f table, complete h∘(g∘f) table, every [x,f(x),g(f(x)),h(g(f(x)))] row, are the two tables equal?). All cells, including unused cells, must be typed."
      }
    }
  ],
  "steps": [
    {
      "id": "S001",
      "uses": [
        "G001"
      ],
      "before": "source roles = [qf-density15-composition-three-map-parentheses, density15_composition_three_map_parentheses, finite_explicit_composition_protocol]",
      "after": "derived = [[dimensions, HG_after_F, H_after_GF, ALL_paths, equal]]",
      "relation": "implies",
      "rule_id": "R60_EXACT_perbank_operation_domain_FRAME_and_output_roles",
      "conditions": [],
      "explanation": {
        "zh-Hant": "density14/15用full-prefix underscores，density17用local hyphens。coordinate frame與circle frame不同，輸出欄序／型別依本family，不改原中英／JSON／status。",
        "en": "density14/15 use FULL-prefix underscores;density17 uses LOCAL hyphens.The coordinate and circle frames differ.Retain THIS family ordered answer roles/types and all original bilingual JSON/status."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "用原始資料、型別、索引與本步前提反向代回；一致性審查不等於可由結論唯一還原輸入。有限候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check using the ORIGINAL data,types,indices and premises.Consistency auditing does not claim the conclusion uniquely determines its inputs.Keep finite candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S002",
      "uses": [
        "G001",
        "S001"
      ],
      "before": "source roles = [f, 3, 3, [1, 2, 1]]",
      "after": "derived = [[1, 2, 1]]",
      "relation": "implies",
      "rule_id": "Composition_WHOLE_typed_table_ALL_cells_including_unused",
      "conditions": [],
      "explanation": {
        "zh-Hant": "整條declared table長度須等source大小，全部cell落target Fin(m)，包含unused cell。即使最外source空，也不能略過這個完整table的型別義務。",
        "en": "Require the WHOLE declared table length to equal its source size and EVERY cell to lie in Fin(m),including unused cells.Even an empty outer source cannot waive this complete table typing obligation."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "用原始資料、型別、索引與本步前提反向代回；一致性審查不等於可由結論唯一還原輸入。有限候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check using the ORIGINAL data,types,indices and premises.Consistency auditing does not claim the conclusion uniquely determines its inputs.Keep finite candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S003",
      "uses": [
        "G001",
        "S002"
      ],
      "before": "source roles = [g, 3, 3, [2, 0, 1]]",
      "after": "derived = [[2, 0, 1]]",
      "relation": "implies",
      "rule_id": "Composition_WHOLE_typed_table_ALL_cells_including_unused",
      "conditions": [],
      "explanation": {
        "zh-Hant": "整條declared table長度須等source大小，全部cell落target Fin(m)，包含unused cell。即使最外source空，也不能略過這個完整table的型別義務。",
        "en": "Require the WHOLE declared table length to equal its source size and EVERY cell to lie in Fin(m),including unused cells.Even an empty outer source cannot waive this complete table typing obligation."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "用原始資料、型別、索引與本步前提反向代回；一致性審查不等於可由結論唯一還原輸入。有限候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check using the ORIGINAL data,types,indices and premises.Consistency auditing does not claim the conclusion uniquely determines its inputs.Keep finite candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S004",
      "uses": [
        "G001",
        "S003"
      ],
      "before": "source roles = [h, 3, 4, [1, 3, 0]]",
      "after": "derived = [[1, 3, 0]]",
      "relation": "implies",
      "rule_id": "Composition_WHOLE_typed_table_ALL_cells_including_unused",
      "conditions": [],
      "explanation": {
        "zh-Hant": "整條declared table長度須等source大小，全部cell落target Fin(m)，包含unused cell。即使最外source空，也不能略過這個完整table的型別義務。",
        "en": "Require the WHOLE declared table length to equal its source size and EVERY cell to lie in Fin(m),including unused cells.Even an empty outer source cannot waive this complete table typing obligation."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "用原始資料、型別、索引與本步前提反向代回；一致性審查不等於可由結論唯一還原輸入。有限候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check using the ORIGINAL data,types,indices and premises.Consistency auditing does not claim the conclusion uniquely determines its inputs.Keep finite candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S005",
      "uses": [
        "G001",
        "S004"
      ],
      "before": "source roles = [3, 3, 3, 0, [1, 2, 1], [2, 0, 1]]",
      "after": "derived = [[0, 1, 0]]",
      "relation": "implies",
      "rule_id": "Composition_EACH_original_f_THEN_g_path",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原source x先讀y=f(x)，再在明示中間Fin(m)讀g(y)；所有中間值與index保留，不當乘法或交換順序。",
        "en": "At ORIGINAL source x FIRST read y=f(x),THEN evaluate g(y) in the declared middle Fin(m).Retain every intermediate value/index;this is neither multiplication nor exchanged order."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "用原始資料、型別、索引與本步前提反向代回；一致性審查不等於可由結論唯一還原輸入。有限候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check using the ORIGINAL data,types,indices and premises.Consistency auditing does not claim the conclusion uniquely determines its inputs.Keep finite candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S006",
      "uses": [
        "G001",
        "S005"
      ],
      "before": "source roles = [3, 3, 3, 1, [1, 2, 1], [2, 0, 1]]",
      "after": "derived = [[1, 2, 1]]",
      "relation": "implies",
      "rule_id": "Composition_EACH_original_f_THEN_g_path",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原source x先讀y=f(x)，再在明示中間Fin(m)讀g(y)；所有中間值與index保留，不當乘法或交換順序。",
        "en": "At ORIGINAL source x FIRST read y=f(x),THEN evaluate g(y) in the declared middle Fin(m).Retain every intermediate value/index;this is neither multiplication nor exchanged order."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "用原始資料、型別、索引與本步前提反向代回；一致性審查不等於可由結論唯一還原輸入。有限候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check using the ORIGINAL data,types,indices and premises.Consistency auditing does not claim the conclusion uniquely determines its inputs.Keep finite candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S007",
      "uses": [
        "G001",
        "S006"
      ],
      "before": "source roles = [3, 3, 3, 2, [1, 2, 1], [2, 0, 1]]",
      "after": "derived = [[2, 1, 0]]",
      "relation": "implies",
      "rule_id": "Composition_EACH_original_f_THEN_g_path",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依原source x先讀y=f(x)，再在明示中間Fin(m)讀g(y)；所有中間值與index保留，不當乘法或交換順序。",
        "en": "At ORIGINAL source x FIRST read y=f(x),THEN evaluate g(y) in the declared middle Fin(m).Retain every intermediate value/index;this is neither multiplication nor exchanged order."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "用原始資料、型別、索引與本步前提反向代回；一致性審查不等於可由結論唯一還原輸入。有限候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check using the ORIGINAL data,types,indices and premises.Consistency auditing does not claim the conclusion uniquely determines its inputs.Keep finite candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S008",
      "uses": [
        "G001",
        "S007"
      ],
      "before": "source roles = [3, 3, 3, 4, [1, 2, 1], [2, 0, 1], [1, 3, 0]]",
      "after": "derived = [[0, 1, 3], [1, 3, 1], [1, 3, 1], [[0, 1, 0, 1], [1, 2, 1, 3], [2, 1, 0, 1]], 是]",
      "relation": "implies",
      "rule_id": "Composition_THREE_maps_BOTH_parenthesized_COMPLETE_tables_paths",
      "conditions": [],
      "explanation": {
        "zh-Hant": "一邊先HG再接F，另一邊先GF再接H，逐完整source比較。空outer source仍須先驗全部unused cells；這是已給有限表的精確核對，不是任意函數等式的新形式證書。",
        "en": "Compute HG then F on one side,and GF then H on the other,comparing EVERY original source.Even an empty outer source requires ALL unused cells typed first.This is exact checking of the given finite tables,not a new formal certificate for every function identity."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "用原始資料、型別、索引與本步前提反向代回；一致性審查不等於可由結論唯一還原輸入。有限候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check using the ORIGINAL data,types,indices and premises.Consistency auditing does not claim the conclusion uniquely determines its inputs.Keep finite candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    }
  ],
  "math_model": {
    "result": [
      [
        3,
        3,
        3,
        4
      ],
      [
        1,
        3,
        1
      ],
      [
        1,
        3,
        1
      ],
      [
        [
          0,
          1,
          0,
          1
        ],
        [
          1,
          2,
          1,
          3
        ],
        [
          2,
          1,
          0,
          1
        ]
      ],
      true
    ]
  },
  "conclusion": {
    "canonical_value": "([3, 3, 3, 4], [1, 3, 1], [1, 3, 1], [[0, 1, 0, 1], [1, 2, 1, 3], [2, 1, 0, 1]], 是)",
    "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-20261011-advance-20261015-r04-composition-foundations",
      "batch_path": "public/data/questions/batches/batch-20261011-advance-20261015-r04-composition-foundations/questions.jsonl",
      "batch_sha256": "ae1bde6f45fb411b7205bf61b2d3de85ef2f3d38c4b040606cda5c16a8f9e12e",
      "original_line": 93,
      "original_line_sha256": "650a6fc3de7d9a2ac01b7e9b64879212f1a3fc09fb3ab9d5968400ee6bf3730a",
      "question_compact_sha256": "b749f632d2e0e0ff85af9da5e1754d9dac21d6ac9c11afa1108efe77662daade",
      "english_row_compact_sha256": "58b4970b075f4af5dcb956e17d58f362b8ebd36375bf383577d7cdb26fc745d9",
      "english_manifest_path": "public/data/i18n/editions/batch-20261011-advance-20261015-r04-composition-foundations.en.json",
      "english_rows_path": "public/data/i18n/questions/batch-20261011-advance-20261015-r04-composition-foundations.en.jsonl"
    },
    "mko_bindings": {
      "mko-composition": {
        "sha256": "a915b980c52ed5cfa4fd9ef59e2a23ef237a0eebbe262cd6f1a67b15f052bfa9",
        "english_sha256": "702841fe3d6cacc8f4b48338fbd4fc96731540292253b3030c43dce8e1cf1979",
        "original_path": "public/data/mko/composition.json",
        "english_path": "public/data/i18n/editions/mko-composition.en.json"
      }
    },
    "selected_manifest_sha256": "5233edba9654a6cffd8b6b2d83c932f82ded15f9c0b7c733bd049943e672acff",
    "selected_part_sha256": "322533190c1eb10144c4c59b6c70cc2f8105108b5f4f3a39dd577712e7185c02",
    "original_candidate_sha256": "6be33d1c0b68b46561f0d1575819b310622262af4ca539bda58101b2c714032f",
    "original_candidate_line_sha256": "6be33d1c0b68b46561f0d1575819b310622262af4ca539bda58101b2c714032f"
  },
  "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-011-p61",
    "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": "d6b5a409bf933281a46617cd715d8016fd5ca3d6fb76f77d179ac2ecd9d608bf",
      "question_first_witness_sha256": "f80ecf598c6893a580af018e1a82849b33ee6887efb48a6a1d69569aa17f12e4"
    },
    "status": "second_context_reviewed",
    "mathematical_semantics": true,
    "bilingual_semantics": true,
    "steps_reviewed": 8,
    "method": "family_template_semantic_review_plus_independent_per_instance_reconstruction",
    "exact_question_first_check": {
      "model_sha256": "0814e6b9cb6351e6cbc153da6cce5d7207575ccf971923dcc488360753a37805",
      "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."
  }
}
