{
  "schema_version": "ocme-reviewed-question-reader-v1",
  "question_id": "q-20261008-advance-20261012-r04-set-membership-0096",
  "pilot_number": "R0010-05671",
  "number": 5671,
  "family_id": "qf-density12-membership-predicate-extension",
  "title": {
    "zh-Hant": "第 5671 題：有限謂詞的外延與排序真假",
    "en": "Question 5671: Finite Predicate Extension and Aligned Truths"
  },
  "original_question": {
    "schema_version": "ocme-question-v0.1",
    "id": "q-20261008-advance-20261012-r04-set-membership-0096",
    "batch_id": "batch-20261008-advance-20261012-r04-set-membership-foundations",
    "language": "zh-Hant",
    "source_mko_ids": [
      "mko-set-membership"
    ],
    "title_zh": "有限謂詞的外延與排序真假",
    "stem_zh": "有限整數集合U=[-20, -1, 0, 1, 20]，謂詞P(x)為20整除x。先正規化U為遞增集合，依序答 (滿足P的完整外延A, 對齊排序U的真假列表)。",
    "answer": {
      "kind": "expression",
      "value": "([-20, 0, 20], [真, 假, 真, 假, 真])",
      "explanation_zh": "有限謂詞外延與真假=([-20, 0, 20], [真, 假, 真, 假, 真])。逐一測明示U的可判定謂詞，整除使用非零除數；有限隸屬非全部集合論。"
    },
    "difficulty": {
      "band": "upper_secondary",
      "level": 3,
      "skills": [
        "有限謂詞的外延與排序真假"
      ]
    },
    "variant": {
      "family_id": "qf-density12-membership-predicate-extension",
      "seed": 202610124096,
      "parameters": {
        "U": [
          -20,
          -1,
          0,
          1,
          20
        ],
        "predicate": "divides",
        "parameter": 20,
        "operation": "density12_membership_predicate_extension",
        "domain": "finite_integer_membership",
        "semantic_template": "qf-density12-membership-predicate-extension/[[-20,0,20],[true,false,true,false,true]]"
      }
    },
    "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-08",
      "contract_version": "ocme-question-factory-v0.1"
    }
  },
  "original_english_edition": {
    "schema_version": "ocme-question-localization-v0.1",
    "question_id": "q-20261008-advance-20261012-r04-set-membership-0096",
    "batch_id": "batch-20261008-advance-20261012-r04-set-membership-foundations",
    "locale": "en",
    "translation_state": "ai_candidate",
    "source": {
      "question_sha256": "851e644a67bd49409294934c4ead9bf5102932aa6d4309710cdc603280d08ede",
      "family_id": "qf-density12-membership-predicate-extension",
      "seed": 202610124096,
      "semantic_template": "qf-density12-membership-predicate-extension/[[-20,0,20],[true,false,true,false,true]]"
    },
    "fields": {
      "title": "Finite Predicate Extension and Aligned Truths",
      "stem": "Finite integer set U=[-20, -1, 0, 1, 20]; P(x) means 20 divides x (nonzero divisor). Normalize U increasingly, then give (complete satisfying extension A, truth list aligned to sorted U).",
      "answer": {
        "kind": "expression",
        "value": "([-20, 0, 20], [True, False, True, False, True])",
        "explanation": "Evaluate the declared decidable predicate for every domain element; divisibility requires a nonzero divisor. This is a finite extension, not unrestricted comprehension. The exact result, retaining the requested order, is ([-20, 0, 20], [True, False, True, False, True])."
      },
      "skills": [
        "Finite Predicate Extension and Aligned Truths"
      ],
      "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": "有限整數集合U=[-20, -1, 0, 1, 20]，謂詞P(x)為20整除x。先正規化U為遞增集合，依序答 (滿足P的完整外延A, 對齊排序U的真假列表)。",
        "en": "Finite integer set U=[-20, -1, 0, 1, 20]; P(x) means 20 divides x (nonzero divisor). Normalize U increasingly, then give (complete satisfying extension A, truth list aligned to sorted U)."
      }
    }
  ],
  "steps": [
    {
      "id": "S001",
      "uses": [
        "G001"
      ],
      "before": "declared finite type or bounded integer universe",
      "after": "membership truth is distinct from eligibility to ask the question",
      "relation": "implies",
      "rule_id": "finite_membership_scope",
      "conditions": [],
      "explanation": {
        "zh-Hant": "型別外不等於隸屬為假；只在明示有限型別或整數集合中核對，並不宣稱全部集合論或無限制概括。",
        "en": "Being outside the type is not the same as false membership.Check only the declared finite type or integer set,not all set theory or unrestricted comprehension."
      },
      "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": "test 20 divides -20",
      "after": "-20=-1·20+0",
      "relation": "implies",
      "rule_id": "membership_divisibility_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "以正除數|a|作歐式除法，餘數0恰表示原非零a整除x。",
        "en": "Euclidean division by positive |a| gives remainder0 exactly when the original nonzero a divides x."
      },
      "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": {
        "operation": "euclidean_division",
        "inputs": [
          "-20",
          "20",
          "-1"
        ],
        "output": "0",
        "label": "membership predicate remainder"
      }
    },
    {
      "id": "S003",
      "uses": [
        "G001",
        "S002"
      ],
      "before": "x=-20;predicate=divides 20",
      "after": "真",
      "relation": "implies",
      "rule_id": "finite_membership_predicate_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "按正規化U的數值順序判定每個元素，不因述詞成功就擴張U。",
        "en": "Evaluate every element in normalized U order;predicate success does not expand U."
      },
      "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": "test 20 divides -1",
      "after": "-1=-1·20+19",
      "relation": "implies",
      "rule_id": "membership_divisibility_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "以正除數|a|作歐式除法，餘數0恰表示原非零a整除x。",
        "en": "Euclidean division by positive |a| gives remainder0 exactly when the original nonzero a divides x."
      },
      "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": {
        "operation": "euclidean_division",
        "inputs": [
          "-1",
          "20",
          "-1"
        ],
        "output": "19",
        "label": "membership predicate remainder"
      }
    },
    {
      "id": "S005",
      "uses": [
        "G001",
        "S004"
      ],
      "before": "x=-1;predicate=divides 20",
      "after": "假",
      "relation": "implies",
      "rule_id": "finite_membership_predicate_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "按正規化U的數值順序判定每個元素，不因述詞成功就擴張U。",
        "en": "Evaluate every element in normalized U order;predicate success does not expand U."
      },
      "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": "S006",
      "uses": [
        "G001",
        "S005"
      ],
      "before": "test 20 divides 0",
      "after": "0=0·20+0",
      "relation": "implies",
      "rule_id": "membership_divisibility_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "以正除數|a|作歐式除法，餘數0恰表示原非零a整除x。",
        "en": "Euclidean division by positive |a| gives remainder0 exactly when the original nonzero a divides x."
      },
      "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": {
        "operation": "euclidean_division",
        "inputs": [
          "0",
          "20",
          "0"
        ],
        "output": "0",
        "label": "membership predicate remainder"
      }
    },
    {
      "id": "S007",
      "uses": [
        "G001",
        "S006"
      ],
      "before": "x=0;predicate=divides 20",
      "after": "真",
      "relation": "implies",
      "rule_id": "finite_membership_predicate_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "按正規化U的數值順序判定每個元素，不因述詞成功就擴張U。",
        "en": "Evaluate every element in normalized U order;predicate success does not expand U."
      },
      "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": "S008",
      "uses": [
        "G001",
        "S007"
      ],
      "before": "test 20 divides 1",
      "after": "1=0·20+1",
      "relation": "implies",
      "rule_id": "membership_divisibility_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "以正除數|a|作歐式除法，餘數0恰表示原非零a整除x。",
        "en": "Euclidean division by positive |a| gives remainder0 exactly when the original nonzero a divides x."
      },
      "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": {
        "operation": "euclidean_division",
        "inputs": [
          "1",
          "20",
          "0"
        ],
        "output": "1",
        "label": "membership predicate remainder"
      }
    },
    {
      "id": "S009",
      "uses": [
        "G001",
        "S008"
      ],
      "before": "x=1;predicate=divides 20",
      "after": "假",
      "relation": "implies",
      "rule_id": "finite_membership_predicate_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "按正規化U的數值順序判定每個元素，不因述詞成功就擴張U。",
        "en": "Evaluate every element in normalized U order;predicate success does not expand U."
      },
      "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": "S010",
      "uses": [
        "G001",
        "S009"
      ],
      "before": "test 20 divides 20",
      "after": "20=1·20+0",
      "relation": "implies",
      "rule_id": "membership_divisibility_witness",
      "conditions": [],
      "explanation": {
        "zh-Hant": "以正除數|a|作歐式除法，餘數0恰表示原非零a整除x。",
        "en": "Euclidean division by positive |a| gives remainder0 exactly when the original nonzero a divides x."
      },
      "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": {
        "operation": "euclidean_division",
        "inputs": [
          "20",
          "20",
          "1"
        ],
        "output": "0",
        "label": "membership predicate remainder"
      }
    },
    {
      "id": "S011",
      "uses": [
        "G001",
        "S010"
      ],
      "before": "x=20;predicate=divides 20",
      "after": "真",
      "relation": "implies",
      "rule_id": "finite_membership_predicate_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "按正規化U的數值順序判定每個元素，不因述詞成功就擴張U。",
        "en": "Evaluate every element in normalized U order;predicate success does not expand U."
      },
      "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": "S012",
      "uses": [
        "G001",
        "S011"
      ],
      "before": "normalized U=[-20, -1, 0, 1, 20];truths=[真, 假, 真, 假, 真]",
      "after": "A={x∈U:P(x)}=[-20, 0, 20]",
      "relation": "implies",
      "rule_id": "bounded_predicate_extension",
      "conditions": [],
      "explanation": {
        "zh-Hant": "完整外延只含明示U內的成功元素，真假列表仍與全部排序U對齊；空U給兩個空列表。",
        "en": "The full extension contains exactly the successful elements of the supplied U;the truth list remains aligned with all sorted U-elements.Empty U gives two empty lists."
      },
      "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": [
      [
        -20,
        0,
        20
      ],
      [
        true,
        false,
        true,
        false,
        true
      ]
    ]
  },
  "conclusion": {
    "canonical_value": "([-20, 0, 20], [真, 假, 真, 假, 真])",
    "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-20261008-advance-20261012-r04-set-membership-foundations",
      "batch_path": "public/data/questions/batches/batch-20261008-advance-20261012-r04-set-membership-foundations/questions.jsonl",
      "batch_sha256": "f10a826885fa19e57016c6a08b8d9a1fe86d7d44f9376d12639a973f92aeb8e2",
      "original_line": 96,
      "original_line_sha256": "c37e9a03d612e4e6266b187b2c17e024e1f2e0220a4e62a44581cbbf70f37b93",
      "question_compact_sha256": "851e644a67bd49409294934c4ead9bf5102932aa6d4309710cdc603280d08ede",
      "english_row_compact_sha256": "cae85eafb11a256b8b6257f91b2e9bab18c291fa8f62895c8342757e44a059cd",
      "english_manifest_path": "public/data/i18n/editions/batch-20261008-advance-20261012-r04-set-membership-foundations.en.json",
      "english_rows_path": "public/data/i18n/questions/batch-20261008-advance-20261012-r04-set-membership-foundations.en.jsonl"
    },
    "mko_bindings": {
      "mko-set-membership": {
        "sha256": "2a438aa79c23e6d37869e1e63eb48420bcf2f114f44b58fe5bea386076b4f0db",
        "english_sha256": "3c93982fdf37b764e4dcea079fba39532642656286a8cfbae67470b6274a4e38",
        "original_path": "public/data/mko/set-membership.json",
        "english_path": "public/data/i18n/editions/mko-set-membership.en.json"
      }
    },
    "selected_manifest_sha256": "5233edba9654a6cffd8b6b2d83c932f82ded15f9c0b7c733bd049943e672acff",
    "selected_part_sha256": "aeab777a3897ae2c01315b86b5e9b9a43ffb59b075efae44fd95d447123d32f1",
    "original_candidate_sha256": "965e3dba985a826422362105733b6d031726177c7e556775b0c03ebe656a9bc5",
    "original_candidate_line_sha256": "965e3dba985a826422362105733b6d031726177c7e556775b0c03ebe656a9bc5"
  },
  "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-005-p11",
    "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": "0328166a2e335aac7a5fb34556e68c80ba7d16612e822b3999c8ac348a9ca06f",
      "question_first_witness_sha256": "0da18e4e6cf71ece5ec5f00dd0cd161217b6d251672bc0b46d79fe7e6253f5fc"
    },
    "status": "second_context_reviewed",
    "mathematical_semantics": true,
    "bilingual_semantics": true,
    "steps_reviewed": 12,
    "method": "family_template_semantic_review_plus_independent_per_instance_reconstruction",
    "exact_question_first_check": {
      "model_sha256": "3a5d7a19bfdabbe13f88b9b41d9a298437845563894b2c0c27fedceb06eaa95a",
      "arithmetic_steps": 5
    },
    "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."
  }
}
