{
  "schema_version": "ocme-reviewed-question-reader-v1",
  "question_id": "q-20261011-advance-20261015-r04-composition-0002",
  "pilot_number": "R0060-30627",
  "number": 30627,
  "family_id": "qf-density15-composition-compatible-path-table",
  "title": {
    "zh-Hant": "第 30627 題：完整兩表合成路徑",
    "en": "Question 30627: Complete Compatible Composition Paths and Range"
  },
  "original_question": {
    "schema_version": "ocme-question-v0.1",
    "id": "q-20261011-advance-20261015-r04-composition-0002",
    "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(4)=[0, 1, 2, 3]，完整f:n→m表=[0, 0, 0]、g:m→k表=[3, 1, 0]。求 ([n,m,k], 每個[x,f(x),g(f(x))]路徑, 合成值域)。未使用格仍須合型。",
    "answer": {
      "kind": "expression",
      "value": "([3, 3, 4], [[0, 0, 3], [1, 0, 3], [2, 0, 3]], [3])",
      "explanation_zh": "完整合成型別與求值路徑=([3, 3, 4], [[0, 0, 3], [1, 0, 3], [2, 0, 3]], [3])。依序查f再查g，全來源列保留中間值，最後輸出去重。合成不當乘法或任意交換，有限路徑非全部函數等式形式證明。"
    },
    "difficulty": {
      "band": "upper_secondary",
      "level": 1,
      "skills": [
        "完整兩表合成路徑"
      ]
    },
    "variant": {
      "family_id": "qf-density15-composition-compatible-path-table",
      "seed": 202610154002,
      "parameters": {
        "n": 3,
        "m": 3,
        "k": 4,
        "f": [
          0,
          0,
          0
        ],
        "g": [
          3,
          1,
          0
        ],
        "domain": "finite_explicit_composition_protocol",
        "operation": "density15_composition_compatible_path_table",
        "semantic_template": "qf-density15-composition-compatible-path-table/[3,3,4,[0,0,0],[3,3,3]]"
      }
    },
    "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-0002",
    "batch_id": "batch-20261011-advance-20261015-r04-composition-foundations",
    "locale": "en",
    "translation_state": "ai_candidate",
    "source": {
      "question_sha256": "db2aed9381a69c5f1b23263b09d0163e6f69fe7b41022e9191e60608c1060383",
      "family_id": "qf-density15-composition-compatible-path-table",
      "seed": 202610154002,
      "semantic_template": "qf-density15-composition-compatible-path-table/[3,3,4,[0,0,0],[3,3,3]]"
    },
    "fields": {
      "title": "Complete Compatible Composition Paths and Range",
      "stem": "First f, then g: Fin(3)={0,…,2}→Fin(3)→Fin(4); complete f=[0, 0, 0], g=[3, 1, 0]. Give ([n,m,k], every [x,f(x),g(f(x))] row, increasing composition range). Unused cells must still be typed.",
      "answer": {
        "kind": "expression",
        "value": "([3, 3, 4], [[0, 0, 3], [1, 0, 3], [2, 0, 3]], [3])",
        "explanation": "Read f before g at every source point, retain each intermediate value, and deduplicate final outputs; composition is not multiplication or arbitrary exchange. The exact result, retaining the requested order, is ([3, 3, 4], [[0, 0, 3], [1, 0, 3], [2, 0, 3]], [3])."
      },
      "skills": [
        "Complete Compatible Composition Paths and Range"
      ],
      "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(4)=[0, 1, 2, 3]，完整f:n→m表=[0, 0, 0]、g:m→k表=[3, 1, 0]。求 ([n,m,k], 每個[x,f(x),g(f(x))]路徑, 合成值域)。未使用格仍須合型。",
        "en": "First f, then g: Fin(3)={0,…,2}→Fin(3)→Fin(4); complete f=[0, 0, 0], g=[3, 1, 0]. Give ([n,m,k], every [x,f(x),g(f(x))] row, increasing composition range). Unused cells must still be typed."
      }
    }
  ],
  "steps": [
    {
      "id": "S001",
      "uses": [
        "G001"
      ],
      "before": "source roles = [qf-density15-composition-compatible-path-table, density15_composition_compatible_path_table, finite_explicit_composition_protocol]",
      "after": "derived = [[dimensions, ALL_source_paths, sorted_final_range]]",
      "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, [0, 0, 0]]",
      "after": "derived = [[0, 0, 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": "S003",
      "uses": [
        "G001",
        "S002"
      ],
      "before": "source roles = [g, 3, 4, [3, 1, 0]]",
      "after": "derived = [[3, 1, 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": "S004",
      "uses": [
        "G001",
        "S003"
      ],
      "before": "source roles = [3, 3, 4, 0, [0, 0, 0], [3, 1, 0]]",
      "after": "derived = [[0, 0, 3]]",
      "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": "S005",
      "uses": [
        "G001",
        "S004"
      ],
      "before": "source roles = [3, 3, 4, 1, [0, 0, 0], [3, 1, 0]]",
      "after": "derived = [[1, 0, 3]]",
      "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, 4, 2, [0, 0, 0], [3, 1, 0]]",
      "after": "derived = [[2, 0, 3]]",
      "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, 4, [0, 0, 0], [3, 1, 0]]",
      "after": "derived = [[[0, 0, 3], [1, 0, 3], [2, 0, 3]], [3]]",
      "relation": "implies",
      "rule_id": "Composition_COMPLETE_paths_and_ACTUAL_sorted_range",
      "conditions": [],
      "explanation": {
        "zh-Hant": "逐完全部x的path才取最後outputs去重排序為range，不補未使用target。空source的path與range皆空，但全table型別已先核。",
        "en": "After ALL source paths,sort/deduplicate the actual final outputs for the range,without adding unused targets.Empty source gives empty paths/range,AFTER all complete-table types were checked."
      },
      "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,
        4
      ],
      [
        [
          0,
          0,
          3
        ],
        [
          1,
          0,
          3
        ],
        [
          2,
          0,
          3
        ]
      ],
      [
        3
      ]
    ]
  },
  "conclusion": {
    "canonical_value": "([3, 3, 4], [[0, 0, 3], [1, 0, 3], [2, 0, 3]], [3])",
    "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": 2,
      "original_line_sha256": "bade2f11aa6bb3c25436f54273117002e8248e7becbacbb9013b4517dff33490",
      "question_compact_sha256": "db2aed9381a69c5f1b23263b09d0163e6f69fe7b41022e9191e60608c1060383",
      "english_row_compact_sha256": "8843e0cb30b4cd374431591052894215d67d3f1474fa30d827265b91ce6d19af",
      "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": "fdb868cb75763dc9a16d06a0bd24cabce9e15baf65d120f66b2c2bfc734234ec",
    "original_candidate_line_sha256": "fdb868cb75763dc9a16d06a0bd24cabce9e15baf65d120f66b2c2bfc734234ec"
  },
  "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": 7,
    "method": "family_template_semantic_review_plus_independent_per_instance_reconstruction",
    "exact_question_first_check": {
      "model_sha256": "a6831cb2251707e6ea62c0127d7ab2f9286d3c186341f9249ee7d879dd727b1a",
      "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."
  }
}
