{
  "schema_version": "ocme-reviewed-question-reader-v1",
  "question_id": "q-20261013-advance-20261019-r07-lean-proof-term-0016",
  "pilot_number": "R0018-09966",
  "number": 9966,
  "family_id": "qf-ext19-proofterm-small-calculus",
  "title": {
    "zh-Hant": "第 9966 題：合成證明項判定",
    "en": "Question 9966: Synthetic Implication/Conjunction Term Type against a Claim"
  },
  "original_question": {
    "schema_version": "ocme-question-v0.1",
    "id": "q-20261013-advance-20261019-r07-lean-proof-term-0016",
    "batch_id": "batch-20261013-advance-20261019-r07-lean-proof-term-foundations",
    "language": "zh-Hant",
    "source_mko_ids": [
      "mko-lean-proof-term"
    ],
    "title_zh": "合成證明項判定",
    "stem_zh": "合成proof-term receipt。操作=proofterm-small-calculus；資料={\"context\":[{\"name\":\"pair15\",\"type\":[\"and\",\"P15\",\"Q15\"]}],\"term\":{\"kind\":\"fst\",\"pair\":{\"kind\":\"var\",\"name\":\"pair15\"}},\"claimed_type\":\"P15\"}。請依 [inferred_type,claimed_type,matches] 欄序回答。",
    "answer": {
      "kind": "expression",
      "value": "(P15, P15, 是)",
      "explanation_zh": "第二批擴展核對=(P15, P15, 是)；依完整明示資料重算；有限／合成資料核對不是一般形式證明；本輪未跑Lean build；statement不等於已驗證proof；tactic log不等於kernel receipt。"
    },
    "difficulty": {
      "band": "undergraduate_core",
      "level": 2,
      "skills": [
        "合成證明項判定"
      ]
    },
    "variant": {
      "family_id": "qf-ext19-proofterm-small-calculus",
      "seed": 202610197016,
      "parameters": {
        "context": [
          {
            "name": "pair15",
            "type": [
              "and",
              "P15",
              "Q15"
            ]
          }
        ],
        "term": {
          "kind": "fst",
          "pair": {
            "kind": "var",
            "name": "pair15"
          }
        },
        "claimed_type": "P15",
        "domain": "Synthetic_typed_proof_calculus",
        "operation": "proofterm-small-calculus",
        "semantic_template": "qf-ext19-proofterm-small-calculus/{\"claimed_type\":\"P15\",\"context\":[{\"name\":\"pair15\",\"type\":[\"and\",\"P15\",\"Q15\"]}],\"term\":{\"kind\":\"fst\",\"pair\":{\"kind\":\"var\",\"name\":\"pair15\"}}}"
      }
    },
    "verification": {
      "status": "candidate",
      "checks": [
        "producer_exact_finite_model",
        "producer_source_snapshot_check",
        "producer_substantive_template_deduplication",
        "producer_json_schema"
      ],
      "warning_zh": "僅為產生端候選及自檢；主端須另驗，不構成人工審定、一般程式證明、Lean執行或形式Evidence。"
    },
    "provenance": {
      "generator_role": "question_producer",
      "generator_model": "model_unknown",
      "generated_at": "2026-10-13",
      "contract_version": "ocme-question-factory-v0.1"
    }
  },
  "original_english_edition": {
    "schema_version": "ocme-question-localization-v0.1",
    "question_id": "q-20261013-advance-20261019-r07-lean-proof-term-0016",
    "batch_id": "batch-20261013-advance-20261019-r07-lean-proof-term-foundations",
    "locale": "en",
    "translation_state": "ai_candidate",
    "source": {
      "question_sha256": "630385bf6bb58e1b16fa69f82a3a9888ed65c5f3b03fb249867aaeb2222aa1af",
      "family_id": "qf-ext19-proofterm-small-calculus",
      "seed": 202610197016,
      "semantic_template": "qf-ext19-proofterm-small-calculus/{\"claimed_type\":\"P15\",\"context\":[{\"name\":\"pair15\",\"type\":[\"and\",\"P15\",\"Q15\"]}],\"term\":{\"kind\":\"fst\",\"pair\":{\"kind\":\"var\",\"name\":\"pair15\"}}}"
    },
    "fields": {
      "title": "Synthetic Implication/Conjunction Term Type against a Claim",
      "stem": "Use the synthetic small propositional calculus or synthetic receipt specified here, not actual Lean execution. The original source pulse did not run Lean builds for these questions. A statement, tactic log and kernel-checked proof are different obligations. Context=[{\"name\":\"pair15\",\"type\":[\"and\",\"P15\",\"Q15\"]}], term={\"kind\":\"fst\",\"pair\":{\"kind\":\"var\",\"name\":\"pair15\"}}, claimed_type=\"P15\". Atomic types are uppercase names; [imp,A,B] and [and,A,B] are implication and conjunction. Terms use var, lam, app, pair, fst, snd; this toy rule forbids rebinding a context name. Give (inferred type, claimed type, exact type match?).",
      "answer": {
        "kind": "expression",
        "value": "(P15, P15, Yes)",
        "explanation": "Apply only the specified small-calculus rules. This synthetic type inference is not a Lean kernel receipt. Finite/synthetic checks are not new general formal Evidence. The exact result, retaining the requested order, is (P15, P15, Yes)."
      },
      "skills": [
        "Synthetic Implication/Conjunction Term Type against a Claim"
      ],
      "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": "合成proof-term receipt。操作=proofterm-small-calculus；資料={\"context\":[{\"name\":\"pair15\",\"type\":[\"and\",\"P15\",\"Q15\"]}],\"term\":{\"kind\":\"fst\",\"pair\":{\"kind\":\"var\",\"name\":\"pair15\"}},\"claimed_type\":\"P15\"}。請依 [inferred_type,claimed_type,matches] 欄序回答。",
        "en": "Use the synthetic small propositional calculus or synthetic receipt specified here, not actual Lean execution. The original source pulse did not run Lean builds for these questions. A statement, tactic log and kernel-checked proof are different obligations. Context=[{\"name\":\"pair15\",\"type\":[\"and\",\"P15\",\"Q15\"]}], term={\"kind\":\"fst\",\"pair\":{\"kind\":\"var\",\"name\":\"pair15\"}}, claimed_type=\"P15\". Atomic types are uppercase names; [imp,A,B] and [and,A,B] are implication and conjunction. Terms use var, lam, app, pair, fst, snd; this toy rule forbids rebinding a context name. Give (inferred type, claimed type, exact type match?)."
      }
    }
  ],
  "steps": [
    {
      "id": "S001",
      "uses": [
        "G001"
      ],
      "before": "synthetic proposition/term calculus or supplied synthetic receipt",
      "after": "no actual Lean build,source-digest check or kernel acceptance",
      "relation": "implies",
      "rule_id": "synthetic_proofterm_not_actual_kernel",
      "conditions": [],
      "explanation": {
        "zh-Hant": "本題只套明定的小演算或合成receipt規格。陳述、tactic完成、term存在與kernel接受分開；本輪不執行Lean或把教學稿標成形式證明。",
        "en": "Apply only the specified small calculus or synthetic receipt protocol.Statement,tactic completion,term presence and kernel acceptance are separate.No Lean is run and the teaching guide is not promoted to a formal proof."
      },
      "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": "raw context=[{\"name\":\"pair15\",\"type\":[\"and\",\"P15\",\"Q15\"]}]",
      "after": "validated English-locale context=[[\"pair15\",[\"and\",\"P15\",\"Q15\"]]]",
      "relation": "implies",
      "rule_id": "synthetic_whole_context_validation",
      "conditions": [],
      "explanation": {
        "zh-Hant": "完整context每個名稱與型別都須合法，重名拒絕；按指定English排序呈現，不翻譯不透明名稱。",
        "en": "Validate every context name and type,reject duplicates,and display in the specified English order without translating opaque names."
      },
      "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": "path=root/pair;term={\"kind\":\"var\",\"name\":\"pair15\"};context=[[\"pair15\",[\"and\",\"P15\",\"Q15\"]]]",
      "after": "variable lookup type=[and, P15, Q15]",
      "relation": "implies",
      "rule_id": "synthetic_variable_typing",
      "conditions": [],
      "explanation": {
        "zh-Hant": "依完整名稱在目前詞法context查型別，不把相似名稱或缺綁定當作可用假設。",
        "en": "Look up the exact name in the current lexical context.Do not treat a similar name or a missing binding as an assumption."
      },
      "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": "S004",
      "uses": [
        "G001",
        "S003"
      ],
      "before": "path=root;term={\"kind\":\"fst\",\"pair\":{\"kind\":\"var\",\"name\":\"pair15\"}};context=[[\"pair15\",[\"and\",\"P15\",\"Q15\"]]];pair type=[and, P15, Q15]",
      "after": "fst projection type=P15",
      "relation": "implies",
      "rule_id": "synthetic_conjunction_projection",
      "conditions": [],
      "explanation": {
        "zh-Hant": "投影只用and型別的對應分量，fst取第一、snd取第二；imp不能冒充配對。",
        "en": "Project the corresponding component of an and type:fst selects the first,snd the second.An imp type cannot stand in for a pair."
      },
      "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": "inferred type=P15;declared claim=P15",
      "after": "exact structural type match=是",
      "relation": "implies",
      "rule_id": "synthetic_claim_checked_not_assumed",
      "conditions": [],
      "explanation": {
        "zh-Hant": "推得型別與聲稱型別另做結構比較，不能用claim反填推論結果；此成功只屬合成演算。",
        "en": "Compare the inferred type structurally with the claim.Do not fill the inference from the claim.A match belongs only to this synthetic calculus."
      },
      "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": [
      "P15",
      "P15",
      true
    ]
  },
  "conclusion": {
    "canonical_value": "(P15, P15, 是)",
    "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-20261013-advance-20261019-r07-lean-proof-term-foundations",
      "batch_path": "public/data/questions/batches/batch-20261013-advance-20261019-r07-lean-proof-term-foundations/questions.jsonl",
      "batch_sha256": "f4cf6c211d2edd61cb9e5b827c3869edb45d363ecd7d8f63108f53d848e14557",
      "original_line": 16,
      "original_line_sha256": "aa2ffa8950b64f41f5e04db14f762d76f72cac78c2f0fd0559cc047c2173ac4c",
      "question_compact_sha256": "630385bf6bb58e1b16fa69f82a3a9888ed65c5f3b03fb249867aaeb2222aa1af",
      "english_row_compact_sha256": "1b95dad128828e64d0392b90563b302b3102752f9cc1a152108774c668431b19",
      "english_manifest_path": "public/data/i18n/editions/batch-20261013-advance-20261019-r07-lean-proof-term-foundations.en.json",
      "english_rows_path": "public/data/i18n/questions/batch-20261013-advance-20261019-r07-lean-proof-term-foundations.en.jsonl"
    },
    "mko_bindings": {
      "mko-lean-proof-term": {
        "sha256": "a11c7813a596785a48d1af6603780643970769d714b6a167fec2a29245c6e1b2",
        "english_sha256": "d42bc57cd7682e13350bb803d8c13f2fcb0aa358ca7532f8aed5e5715b020506",
        "original_path": "public/data/mko/lean-proof-term.json",
        "english_path": "public/data/i18n/editions/mko-lean-proof-term.en.json"
      }
    },
    "selected_manifest_sha256": "5233edba9654a6cffd8b6b2d83c932f82ded15f9c0b7c733bd049943e672acff",
    "selected_part_sha256": "2cf5df7bf9c3d48dfd41d968723b60d910c4ecfec9c2089d22ac1cda059a6086",
    "original_candidate_sha256": "eba454d4724acb1dbd48adc5ee055d2f7ba6d2b66a524757057efedd3834df24",
    "original_candidate_line_sha256": "eba454d4724acb1dbd48adc5ee055d2f7ba6d2b66a524757057efedd3834df24"
  },
  "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-006-p19",
    "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": "bd35da62087a15d6b89b45585dc46e89b9efbe097cba7b3c707b5030496f013c",
      "question_first_witness_sha256": "fab45a10d8ac95c7d61d32e47d1bdd3ca862c17c3289a6bf4b01d4dc9492fbb6"
    },
    "status": "second_context_reviewed",
    "mathematical_semantics": true,
    "bilingual_semantics": true,
    "steps_reviewed": 5,
    "method": "family_template_semantic_review_plus_independent_per_instance_reconstruction",
    "exact_question_first_check": {
      "model_sha256": "4f11aceb19289d9a83b1a60d732fef59e12f12dd1df94af696064fa2f7bb066c",
      "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."
  }
}
