{
  "$schema": "../../../schemas/mko-v0.4.schema.json",
  "schema_version": "mko-v0.4",
  "id": "mko-surjective",
  "semantic_family_id": "sf-surjective",
  "type": "definition",
  "version": "0.10.0",
  "language": "zh-Hant",
  "titles": {
    "zh-Hant": "滿射與陪域覆蓋"
  },
  "summary": {
    "zh-Hant": "滿射要求陪域每個元素都有合法原像；相同輸出可以有多個原像。"
  },
  "statement": {
    "zh-Hant": "總函數 f:A→B 是滿射，當且僅當對每個 b∈B 都存在 x∈A 使 f(x)=b，也就是實際值域 f[A] 等於宣告陪域 B。滿射不要求原像唯一。"
  },
  "formula": {
    "tex": "f:A\\to B",
    "mathml": "<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mrow><mi>f</mi><mo>:</mo><mi>A</mi><mo>→</mo><mi>B</mi></mrow></math>",
    "semantic_ast": {
      "type": "mapping",
      "function": {
        "type": "symbol",
        "name": "f",
        "glyph": "f"
      },
      "domain": {
        "type": "symbol",
        "name": "A",
        "glyph": "A"
      },
      "codomain": {
        "type": "symbol",
        "name": "B",
        "glyph": "B"
      }
    },
    "compiler": {
      "id": "ocme-formula-core",
      "version": "0.4.0",
      "source_sha256": "5a60a2d0dc6d3fe1eee2b4f6bcd1ad8a4c7f29d3622d3feffede72f213ed426f"
    }
  },
  "assumptions": [
    {
      "id": "a1",
      "zh-Hant": "定義域、陪域及總函數已明示。"
    },
    {
      "id": "a2",
      "zh-Hant": "更換陪域時仍須包含全部既有輸出，才能保持同一份表為合法總函數。"
    }
  ],
  "symbols": [
    {
      "token": "f",
      "role": "total_function",
      "role_zh": "指定總函數",
      "scope": "representative_formula"
    },
    {
      "token": "A",
      "role": "domain",
      "role_zh": "定義域",
      "scope": "representative_formula"
    },
    {
      "token": "B",
      "role": "codomain",
      "role_zh": "宣告陪域",
      "scope": "representative_formula"
    }
  ],
  "dependencies": [
    {
      "id": "mko-function-mapping",
      "title_zh": "函數映射",
      "reason_zh": "陪域和輸出資格是函數宣告的一部分。"
    },
    {
      "id": "mko-quantifier",
      "title_zh": "量詞與明示論域",
      "reason_zh": "滿射是對每個陪域元素存在合法原像。"
    }
  ],
  "explanation": {
    "paragraphs_zh": [
      "有限表的未覆蓋目標是 B∖f[A]。缺任一目標即不是滿射；多個輸入映到同一目標不會因此破壞滿射。",
      "對指定 t∈B 可列出原像；首個原像僅指有限整數資料中按數值最小的原像，無原像時答不存在。",
      "同一輸出表若把陪域從 B 改為 B2，滿射性可能改變。先確認 f[A]⊆B2，再問是否等於 B2，不能猜陪域或丟掉仍出現的輸出。空函數 ∅→∅ 為滿射，∅→非空 B 則不是。"
    ],
    "common_misconception_zh": "把值域自動當成陪域，或以多個原像否定滿射。"
  },
  "proofs": [],
  "computational_companions": [],
  "verification": {
    "computational_status": "not_evaluated_no_computational_claim",
    "warning_zh": "有限陪域覆蓋可完整重算；一般滿射與選擇原像的形式義務仍保留。",
    "evidence_refs": [],
    "producers": [
      {
        "id": "lean-mathlib",
        "adapter": "formal_system",
        "config_path": "formal/lean/lakefile.toml",
        "status": "configured"
      }
    ]
  },
  "formalization": {
    "status": "not_formalized",
    "target_systems": [
      "Lean 4",
      "Mathlib"
    ],
    "next_obligation_zh": "綁定 Function.Surjective、range 與陪域變更的合法性。"
  },
  "provenance": {
    "origin": "ocme_local_ai_materialization_candidate",
    "note_zh": "依 research/atlas-surjective.md 整理；2026-10-04 脈衝 R02（使用者手動接續 2026-10-05 工作序列；實際日期仍為 2026-10-04），英文及 Lean 依使用者指示延後。",
    "content_license": "CC-BY-SA-4.0",
    "code_license": "MIT",
    "created_at": "2026-10-04"
  }
}
