{
  "schema_version": "ocme-reviewed-question-reader-v1",
  "question_id": "q-20261004-advance-20261005-r04-inverse-function-0055",
  "pilot_number": "R0064-32730",
  "number": 32730,
  "family_id": "qf-inverse-function-candidate",
  "title": {
    "zh-Hant": "第 32730 題：候選反函數的兩側還原",
    "en": "Question 32730: Checking Both Inverse Identities"
  },
  "original_question": {
    "schema_version": "ocme-question-v0.1",
    "id": "q-20261004-advance-20261005-r04-inverse-function-0055",
    "batch_id": "batch-20261004-advance-20261005-r04-inverse-function-foundations",
    "language": "zh-Hant",
    "source_mko_ids": [
      "mko-inverse-function"
    ],
    "title_zh": "候選反函數的兩側還原",
    "stem_zh": "明示總函數 f:A→B，A={-6, -5, -4, -3, -2, -1}、B={1, 3, 5, 7, 9, 11}，函數表為 {(-6, 11), (-5, 1), (-4, 3), (-3, 5), (-2, 7), (-1, 9)}，且 f 已確認為雙射。候選總函數 g:B→A 的表為 {(1, -5), (3, -4), (5, -3), (7, -2), (9, -1), (11, -6)}；逐側檢查兩個 identity，g 是否為 f 的反函數？",
    "answer": {
      "kind": "short_text",
      "value": "是",
      "explanation_zh": "左還原=是；右還原=是。在明示型別下逐點確認 g(f(x))=x 與 f(g(y))=y；候選失敗不能靠少列輸入掩蓋。"
    },
    "difficulty": {
      "band": "undergraduate_core",
      "level": 1,
      "skills": [
        "候選反函數的兩側還原"
      ]
    },
    "variant": {
      "family_id": "qf-inverse-function-candidate",
      "seed": 202610054055,
      "parameters": {
        "A": [
          -6,
          -5,
          -4,
          -3,
          -2,
          -1
        ],
        "B": [
          1,
          3,
          5,
          7,
          9,
          11
        ],
        "pairs": [
          [
            -6,
            11
          ],
          [
            -5,
            1
          ],
          [
            -4,
            3
          ],
          [
            -3,
            5
          ],
          [
            -2,
            7
          ],
          [
            -1,
            9
          ]
        ],
        "G": [
          [
            1,
            -5
          ],
          [
            3,
            -4
          ],
          [
            5,
            -3
          ],
          [
            7,
            -2
          ],
          [
            9,
            -1
          ],
          [
            11,
            -6
          ]
        ],
        "operation": "inverse_candidate",
        "semantic_template": "qf-inverse-function-candidate/{\"A\":[-6,-5,-4,-3,-2,-1],\"B\":[1,3,5,7,9,11],\"G\":[[1,-5],[3,-4],[5,-3],[7,-2],[9,-1],[11,-6]],\"operation\":\"inverse_candidate\",\"pairs\":[[-6,11],[-5,1],[-4,3],[-3,5],[-2,7],[-1,9]]}"
      }
    },
    "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": "Codex independent producer (inherited model; exact runtime model not exposed)",
      "generated_at": "2026-10-04",
      "contract_version": "ocme-question-factory-v0.1"
    }
  },
  "original_english_edition": {
    "schema_version": "ocme-question-localization-v0.1",
    "question_id": "q-20261004-advance-20261005-r04-inverse-function-0055",
    "batch_id": "batch-20261004-advance-20261005-r04-inverse-function-foundations",
    "locale": "en",
    "translation_state": "ai_candidate",
    "source": {
      "question_sha256": "053e012ac312910e5b86eed1d7a24a01b2eb2eacb252645dc9a455f135f99a64",
      "family_id": "qf-inverse-function-candidate",
      "seed": 202610054055,
      "semantic_template": "qf-inverse-function-candidate/{\"A\":[-6,-5,-4,-3,-2,-1],\"B\":[1,3,5,7,9,11],\"G\":[[1,-5],[3,-4],[5,-3],[7,-2],[9,-1],[11,-6]],\"operation\":\"inverse_candidate\",\"pairs\":[[-6,11],[-5,1],[-4,3],[-3,5],[-2,7],[-1,9]]}"
    },
    "fields": {
      "title": "Checking Both Inverse Identities",
      "stem": "The declared total function f:A→B has A={-6, -5, -4, -3, -2, -1}, B={1, 3, 5, 7, 9, 11}, and table {(-6, 11), (-5, 1), (-4, 3), (-3, 5), (-2, 7), (-1, 9)}. The function has been confirmed bijective. The candidate total g:B→A has table {(1, -5), (3, -4), (5, -3), (7, -2), (9, -1), (11, -6)}. Check both identities to decide whether g is the inverse of f.",
      "answer": {
        "kind": "short_text",
        "value": "Yes",
        "explanation": "Check g(f(x))=x for every x∈A and f(g(y))=y for every y∈B under the explicit types. Both restoration conditions must pass, giving Yes; omitted inputs cannot conceal failure."
      },
      "skills": [
        "Checking Both Inverse Identities"
      ],
      "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:A→B，A={-6, -5, -4, -3, -2, -1}、B={1, 3, 5, 7, 9, 11}，函數表為 {(-6, 11), (-5, 1), (-4, 3), (-3, 5), (-2, 7), (-1, 9)}，且 f 已確認為雙射。候選總函數 g:B→A 的表為 {(1, -5), (3, -4), (5, -3), (7, -2), (9, -1), (11, -6)}；逐側檢查兩個 identity，g 是否為 f 的反函數？",
        "en": "The declared total function f:A→B has A={-6, -5, -4, -3, -2, -1}, B={1, 3, 5, 7, 9, 11}, and table {(-6, 11), (-5, 1), (-4, 3), (-3, 5), (-2, 7), (-1, 9)}. The function has been confirmed bijective. The candidate total g:B→A has table {(1, -5), (3, -4), (5, -3), (7, -2), (9, -1), (11, -6)}. Check both identities to decide whether g is the inverse of f."
      }
    }
  ],
  "steps": [
    {
      "id": "S001",
      "uses": [
        "G001"
      ],
      "before": "source roles = [qf-inverse-function-candidate, inverse_candidate, no-required-domain, []]",
      "after": "derived = [[BOTH_restorations_YesNo_STRING]]",
      "relation": "implies",
      "rule_id": "R64_SOURCE_exact_legacy_interface_BASE_metadata_AND_output_roles",
      "conditions": [],
      "explanation": {
        "zh-Hant": "legacy核來源精確欄位及operation/domain；BASE整數保metadata但不當oracle。先分NUMBER、字串、fractionpair或vector等式，不強套同一格式；原中英／AST／status不變。",
        "en": "Legacy banks enforce their exact source keys/operation/domain.BASE integers retain metadata without treating it as an oracle.Distinguish NUMBER,string,fraction pair and vector equality formats;retain original bilingual data/AST/status."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S002",
      "uses": [
        "G001",
        "S001"
      ],
      "before": "source roles = [ORIGINAL f domain, [-6, -5, -4, -3, -2, -1]]",
      "after": "derived = [[-6, -5, -4, -3, -2, -1]]",
      "relation": "implies",
      "rule_id": "FiniteMap_RAW_distinct_SAFE_set_bound100",
      "conditions": [],
      "explanation": {
        "zh-Hant": "raw集合distinct、SAFE且≤100；排序只是衍生工作表，原list及來源雜湊不變。",
        "en": "RAW sets are distinct,SAFE and≤100.Sort only a derived work table,retaining original lists/hashes."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S003",
      "uses": [
        "G001",
        "S002"
      ],
      "before": "source roles = [ORIGINAL f codomain, [1, 3, 5, 7, 9, 11]]",
      "after": "derived = [[1, 3, 5, 7, 9, 11]]",
      "relation": "implies",
      "rule_id": "FiniteMap_RAW_distinct_SAFE_set_bound100",
      "conditions": [],
      "explanation": {
        "zh-Hant": "raw集合distinct、SAFE且≤100；排序只是衍生工作表，原list及來源雜湊不變。",
        "en": "RAW sets are distinct,SAFE and≤100.Sort only a derived work table,retaining original lists/hashes."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S004",
      "uses": [
        "G001",
        "S003"
      ],
      "before": "source roles = [ORIGINAL f, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [[[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "relation": "implies",
      "rule_id": "FiniteMap_RAW200_bound_BEFORE_identical_row_ASSET_normalization",
      "conditions": [],
      "explanation": {
        "zh-Hant": "先驗全部raw row長度2、SAFE且raw≤200，再把相同row視為同一有序對；不是把不同output的同input合併。空domain也不略過raw檢查。",
        "en": "FIRST type EVERY raw pair and enforce raw length≤200,THEN normalize identical rows as one ordered pair.Do not merge different outputs of one input.Empty domains do not waive RAW checks."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S005",
      "uses": [
        "G001",
        "S004"
      ],
      "before": "source roles = [ORIGINAL f, 0, -6, 11, [-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S006",
      "uses": [
        "G001",
        "S005"
      ],
      "before": "source roles = [ORIGINAL f, 1, -5, 1, [-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S007",
      "uses": [
        "G001",
        "S006"
      ],
      "before": "source roles = [ORIGINAL f, 2, -4, 3, [-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S008",
      "uses": [
        "G001",
        "S007"
      ],
      "before": "source roles = [ORIGINAL f, 3, -3, 5, [-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S009",
      "uses": [
        "G001",
        "S008"
      ],
      "before": "source roles = [ORIGINAL f, 4, -2, 7, [-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S010",
      "uses": [
        "G001",
        "S009"
      ],
      "before": "source roles = [ORIGINAL f, 5, -1, 9, [-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S011",
      "uses": [
        "G001",
        "S010"
      ],
      "before": "source roles = [ORIGINAL f, -6, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S012",
      "uses": [
        "G001",
        "S011"
      ],
      "before": "source roles = [ORIGINAL f, -5, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S013",
      "uses": [
        "G001",
        "S012"
      ],
      "before": "source roles = [ORIGINAL f, -4, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S014",
      "uses": [
        "G001",
        "S013"
      ],
      "before": "source roles = [ORIGINAL f, -3, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S015",
      "uses": [
        "G001",
        "S014"
      ],
      "before": "source roles = [ORIGINAL f, -2, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S016",
      "uses": [
        "G001",
        "S015"
      ],
      "before": "source roles = [ORIGINAL f, -1, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S017",
      "uses": [
        "G001",
        "S016"
      ],
      "before": "source roles = [ORIGINAL f, [-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11], [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [[是, 是, 是, 是, 是, 是], [1, 1, 1, 1, 1, 1], 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_TOTAL_qualification_BEFORE_lookups_even_empty_domain",
      "conditions": [],
      "explanation": {
        "zh-Hant": "所有row型別與所有input總性合取後才准lookup；空集合的vacuous條件不准遮掉非法row。",
        "en": "Permit lookups ONLY after BOTH all-row typing and all-input totality.Empty-set vacuity cannot conceal an invalid row."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S018",
      "uses": [
        "G001",
        "S017"
      ],
      "before": "source roles = [ORIGINAL f, 1, [-6, -5, -4, -3, -2, -1], [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [[-5], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S019",
      "uses": [
        "G001",
        "S018"
      ],
      "before": "source roles = [ORIGINAL f, 3, [-6, -5, -4, -3, -2, -1], [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [[-4], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S020",
      "uses": [
        "G001",
        "S019"
      ],
      "before": "source roles = [ORIGINAL f, 5, [-6, -5, -4, -3, -2, -1], [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [[-3], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S021",
      "uses": [
        "G001",
        "S020"
      ],
      "before": "source roles = [ORIGINAL f, 7, [-6, -5, -4, -3, -2, -1], [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [[-2], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S022",
      "uses": [
        "G001",
        "S021"
      ],
      "before": "source roles = [ORIGINAL f, 9, [-6, -5, -4, -3, -2, -1], [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [[-1], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S023",
      "uses": [
        "G001",
        "S022"
      ],
      "before": "source roles = [ORIGINAL f, 11, [-6, -5, -4, -3, -2, -1], [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [[-6], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S024",
      "uses": [
        "G001",
        "S023"
      ],
      "before": "source roles = [ORIGINAL f, [-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11], [[-5], [-4], [-3], [-2], [-1], [-6]]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_injective_surjective_BOTH_needed_for_inverse",
      "conditions": [],
      "explanation": {
        "zh-Hant": "單射為每fiber≤1，滿射為每fiber≥1，兩者才雙射；未達到B不妨礙單射。空到空可雙射，空到非空只是單射。",
        "en": "Injective means every fiber≤1,surjective every fiber≥1,and BOTH mean bijective.Unattained B does not defeat injectivity.Empty→empty is bijective;empty→nonempty is only injective."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S025",
      "uses": [
        "G001",
        "S024"
      ],
      "before": "source roles = [CANDIDATE g domain, [1, 3, 5, 7, 9, 11]]",
      "after": "derived = [[1, 3, 5, 7, 9, 11]]",
      "relation": "implies",
      "rule_id": "FiniteMap_RAW_distinct_SAFE_set_bound100",
      "conditions": [],
      "explanation": {
        "zh-Hant": "raw集合distinct、SAFE且≤100；排序只是衍生工作表，原list及來源雜湊不變。",
        "en": "RAW sets are distinct,SAFE and≤100.Sort only a derived work table,retaining original lists/hashes."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S026",
      "uses": [
        "G001",
        "S025"
      ],
      "before": "source roles = [CANDIDATE g codomain, [-6, -5, -4, -3, -2, -1]]",
      "after": "derived = [[-6, -5, -4, -3, -2, -1]]",
      "relation": "implies",
      "rule_id": "FiniteMap_RAW_distinct_SAFE_set_bound100",
      "conditions": [],
      "explanation": {
        "zh-Hant": "raw集合distinct、SAFE且≤100；排序只是衍生工作表，原list及來源雜湊不變。",
        "en": "RAW sets are distinct,SAFE and≤100.Sort only a derived work table,retaining original lists/hashes."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S027",
      "uses": [
        "G001",
        "S026"
      ],
      "before": "source roles = [CANDIDATE g, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "relation": "implies",
      "rule_id": "FiniteMap_RAW200_bound_BEFORE_identical_row_ASSET_normalization",
      "conditions": [],
      "explanation": {
        "zh-Hant": "先驗全部raw row長度2、SAFE且raw≤200，再把相同row視為同一有序對；不是把不同output的同input合併。空domain也不略過raw檢查。",
        "en": "FIRST type EVERY raw pair and enforce raw length≤200,THEN normalize identical rows as one ordered pair.Do not merge different outputs of one input.Empty domains do not waive RAW checks."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S028",
      "uses": [
        "G001",
        "S027"
      ],
      "before": "source roles = [CANDIDATE g, 0, 1, -5, [1, 3, 5, 7, 9, 11], [-6, -5, -4, -3, -2, -1]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S029",
      "uses": [
        "G001",
        "S028"
      ],
      "before": "source roles = [CANDIDATE g, 1, 3, -4, [1, 3, 5, 7, 9, 11], [-6, -5, -4, -3, -2, -1]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S030",
      "uses": [
        "G001",
        "S029"
      ],
      "before": "source roles = [CANDIDATE g, 2, 5, -3, [1, 3, 5, 7, 9, 11], [-6, -5, -4, -3, -2, -1]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S031",
      "uses": [
        "G001",
        "S030"
      ],
      "before": "source roles = [CANDIDATE g, 3, 7, -2, [1, 3, 5, 7, 9, 11], [-6, -5, -4, -3, -2, -1]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S032",
      "uses": [
        "G001",
        "S031"
      ],
      "before": "source roles = [CANDIDATE g, 4, 9, -1, [1, 3, 5, 7, 9, 11], [-6, -5, -4, -3, -2, -1]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S033",
      "uses": [
        "G001",
        "S032"
      ],
      "before": "source roles = [CANDIDATE g, 5, 11, -6, [1, 3, 5, 7, 9, 11], [-6, -5, -4, -3, -2, -1]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_normalized_row_declared_domain_codomain_types",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每row輸入在domain、輸出在codomain；orphan或unused row也要完整驗。",
        "en": "EVERY row input belongs to the domain and output to the codomain,including orphan/unused rows."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S034",
      "uses": [
        "G001",
        "S033"
      ],
      "before": "source roles = [CANDIDATE g, 1, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S035",
      "uses": [
        "G001",
        "S034"
      ],
      "before": "source roles = [CANDIDATE g, 3, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S036",
      "uses": [
        "G001",
        "S035"
      ],
      "before": "source roles = [CANDIDATE g, 5, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S037",
      "uses": [
        "G001",
        "S036"
      ],
      "before": "source roles = [CANDIDATE g, 7, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S038",
      "uses": [
        "G001",
        "S037"
      ],
      "before": "source roles = [CANDIDATE g, 9, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S039",
      "uses": [
        "G001",
        "S038"
      ],
      "before": "source roles = [CANDIDATE g, 11, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_EACH_declared_input_exactly_one_output_row",
      "conditions": [],
      "explanation": {
        "zh-Hant": "每個declared input恰一個row才是total，不用第一個lookup掩蓋缺漏或多output。",
        "en": "EACH declared input needs EXACTLY one row for totality.A first lookup must not hide missing or multiple outputs."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S040",
      "uses": [
        "G001",
        "S039"
      ],
      "before": "source roles = [CANDIDATE g, [1, 3, 5, 7, 9, 11], [-6, -5, -4, -3, -2, -1], [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[是, 是, 是, 是, 是, 是], [1, 1, 1, 1, 1, 1], 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_TOTAL_qualification_BEFORE_lookups_even_empty_domain",
      "conditions": [],
      "explanation": {
        "zh-Hant": "所有row型別與所有input總性合取後才准lookup；空集合的vacuous條件不准遮掉非法row。",
        "en": "Permit lookups ONLY after BOTH all-row typing and all-input totality.Empty-set vacuity cannot conceal an invalid row."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S041",
      "uses": [
        "G001",
        "S040"
      ],
      "before": "source roles = [CANDIDATE g, -6, [1, 3, 5, 7, 9, 11], [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[11], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S042",
      "uses": [
        "G001",
        "S041"
      ],
      "before": "source roles = [CANDIDATE g, -5, [1, 3, 5, 7, 9, 11], [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[1], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S043",
      "uses": [
        "G001",
        "S042"
      ],
      "before": "source roles = [CANDIDATE g, -4, [1, 3, 5, 7, 9, 11], [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[3], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S044",
      "uses": [
        "G001",
        "S043"
      ],
      "before": "source roles = [CANDIDATE g, -3, [1, 3, 5, 7, 9, 11], [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[5], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S045",
      "uses": [
        "G001",
        "S044"
      ],
      "before": "source roles = [CANDIDATE g, -2, [1, 3, 5, 7, 9, 11], [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[7], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S046",
      "uses": [
        "G001",
        "S045"
      ],
      "before": "source roles = [CANDIDATE g, -1, [1, 3, 5, 7, 9, 11], [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[9], 1]",
      "relation": "implies",
      "rule_id": "FiniteMap_EVERY_codomain_fiber_including_unattained",
      "conditions": [],
      "explanation": {
        "zh-Hant": "對每個codomain標記列完整preimage，包含空fiber，不把未達到的B刪掉。",
        "en": "List ALL preimages at EVERY codomain label,including empty fibers;do not delete unattained B labels."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S047",
      "uses": [
        "G001",
        "S046"
      ],
      "before": "source roles = [CANDIDATE g, [1, 3, 5, 7, 9, 11], [-6, -5, -4, -3, -2, -1], [[11], [1], [3], [5], [7], [9]]]",
      "after": "derived = [是, 是, 是]",
      "relation": "implies",
      "rule_id": "FiniteMap_injective_surjective_BOTH_needed_for_inverse",
      "conditions": [],
      "explanation": {
        "zh-Hant": "單射為每fiber≤1，滿射為每fiber≥1，兩者才雙射；未達到B不妨礙單射。空到空可雙射，空到非空只是單射。",
        "en": "Injective means every fiber≤1,surjective every fiber≥1,and BOTH mean bijective.Unattained B does not defeat injectivity.Empty→empty is bijective;empty→nonempty is only injective."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S048",
      "uses": [
        "G001",
        "S047"
      ],
      "before": "source roles = [-6, 11, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [-6, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A",
      "conditions": [],
      "explanation": {
        "zh-Hant": "先按f到B，再按已typed total的g回A，對每原input驗恢復，不省略失敗輸入。",
        "en": "Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S049",
      "uses": [
        "G001",
        "S048"
      ],
      "before": "source roles = [-5, 1, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [-5, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A",
      "conditions": [],
      "explanation": {
        "zh-Hant": "先按f到B，再按已typed total的g回A，對每原input驗恢復，不省略失敗輸入。",
        "en": "Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S050",
      "uses": [
        "G001",
        "S049"
      ],
      "before": "source roles = [-4, 3, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [-4, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A",
      "conditions": [],
      "explanation": {
        "zh-Hant": "先按f到B，再按已typed total的g回A，對每原input驗恢復，不省略失敗輸入。",
        "en": "Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S051",
      "uses": [
        "G001",
        "S050"
      ],
      "before": "source roles = [-3, 5, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [-3, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A",
      "conditions": [],
      "explanation": {
        "zh-Hant": "先按f到B，再按已typed total的g回A，對每原input驗恢復，不省略失敗輸入。",
        "en": "Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S052",
      "uses": [
        "G001",
        "S051"
      ],
      "before": "source roles = [-2, 7, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [-2, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A",
      "conditions": [],
      "explanation": {
        "zh-Hant": "先按f到B，再按已typed total的g回A，對每原input驗恢復，不省略失敗輸入。",
        "en": "Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S053",
      "uses": [
        "G001",
        "S052"
      ],
      "before": "source roles = [-1, 9, [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [-1, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_g_after_f_restores_ORIGINAL_A",
      "conditions": [],
      "explanation": {
        "zh-Hant": "先按f到B，再按已typed total的g回A，對每原input驗恢復，不省略失敗輸入。",
        "en": "Apply f into B,THEN the typed total g back into A.Check restoration for EVERY original input without omitting failures."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S054",
      "uses": [
        "G001",
        "S053"
      ],
      "before": "source roles = [1, -5, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [1, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B",
      "conditions": [],
      "explanation": {
        "zh-Hant": "另一方向從每個原B標記先g後f，同樣逐項回到自己，和第一方向分開保留。",
        "en": "In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S055",
      "uses": [
        "G001",
        "S054"
      ],
      "before": "source roles = [3, -4, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [3, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B",
      "conditions": [],
      "explanation": {
        "zh-Hant": "另一方向從每個原B標記先g後f，同樣逐項回到自己，和第一方向分開保留。",
        "en": "In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S056",
      "uses": [
        "G001",
        "S055"
      ],
      "before": "source roles = [5, -3, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [5, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B",
      "conditions": [],
      "explanation": {
        "zh-Hant": "另一方向從每個原B標記先g後f，同樣逐項回到自己，和第一方向分開保留。",
        "en": "In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S057",
      "uses": [
        "G001",
        "S056"
      ],
      "before": "source roles = [7, -2, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [7, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B",
      "conditions": [],
      "explanation": {
        "zh-Hant": "另一方向從每個原B標記先g後f，同樣逐項回到自己，和第一方向分開保留。",
        "en": "In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S058",
      "uses": [
        "G001",
        "S057"
      ],
      "before": "source roles = [9, -1, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [9, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B",
      "conditions": [],
      "explanation": {
        "zh-Hant": "另一方向從每個原B標記先g後f，同樣逐項回到自己，和第一方向分開保留。",
        "en": "In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S059",
      "uses": [
        "G001",
        "S058"
      ],
      "before": "source roles = [11, -6, [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]]]",
      "after": "derived = [11, 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_EACH_f_after_g_restores_ORIGINAL_B",
      "conditions": [],
      "explanation": {
        "zh-Hant": "另一方向從每個原B標記先g後f，同樣逐項回到自己，和第一方向分開保留。",
        "en": "In the OTHER direction,start at EVERY original B label,apply g then f,and restore itself.Retain this check separately."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    },
    {
      "id": "S060",
      "uses": [
        "G001",
        "S059"
      ],
      "before": "source roles = [[-6, -5, -4, -3, -2, -1], [1, 3, 5, 7, 9, 11], [[-6, 11], [-5, 1], [-4, 3], [-3, 5], [-2, 7], [-1, 9]], [[1, -5], [3, -4], [5, -3], [7, -2], [9, -1], [11, -6]]]",
      "after": "derived = [[是, 是, 是, 是, 是, 是], [是, 是, 是, 是, 是, 是], 是]",
      "relation": "implies",
      "rule_id": "Inverse_CANDIDATE_BOTH_typed_total_restoration_inventories",
      "conditions": [],
      "explanation": {
        "zh-Hant": "原f雙射且候選g全typed total後，完整兩方向都通過才Yes。合格但錯反函數是合法No；缺row／超域則是資格不合，不是假裝No。",
        "en": "AFTER f is bijective and g is fully typed/total,BOTH complete restoration inventories must pass.A qualified wrong inverse is a legal No;missing/outside rows fail qualification instead."
      },
      "reverse_audit": {
        "kind": "premise_and_result_audit",
        "explanation": {
          "zh-Hant": "以原始資料、欄位角色、型別、論域及本步前提反向代回核對；不表示結論能唯一還原前提。來源綁定候選、獨立審查、形式證明與發布分開。",
          "en": "Reverse-check ORIGINAL data,field roles,types,domain and premises;the conclusion need not uniquely recover its premises.Keep source-bound candidates,independent review,formal proof and publication separate."
        }
      },
      "arithmetic": null
    }
  ],
  "math_model": {
    "result": "是"
  },
  "conclusion": {
    "canonical_value": "是",
    "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-20261004-advance-20261005-r04-inverse-function-foundations",
      "batch_path": "public/data/questions/batches/batch-20261004-advance-20261005-r04-inverse-function-foundations/questions.jsonl",
      "batch_sha256": "ff8d56ee8ee70775611adcab47240ff9097e9da25da577e3cd139cf9b146853d",
      "original_line": 55,
      "original_line_sha256": "7c6623f5c096712d9fd45209cee59a539b61199c6fea219f2871977193678044",
      "question_compact_sha256": "053e012ac312910e5b86eed1d7a24a01b2eb2eacb252645dc9a455f135f99a64",
      "english_row_compact_sha256": "0b3a6e85fcb1409723c111eb45e7fc96d6f37024ed8fbc0ac52b64938c7da1c8",
      "english_manifest_path": "public/data/i18n/editions/batch-20261004-advance-20261005-r04-inverse-function-foundations.en.json",
      "english_rows_path": "public/data/i18n/questions/batch-20261004-advance-20261005-r04-inverse-function-foundations.en.jsonl"
    },
    "mko_bindings": {
      "mko-inverse-function": {
        "sha256": "bad163b9a218429518937fb4e86abe0e8707ebda0fc06c7e27f625184bc05c4f",
        "english_sha256": "c8aec9f36446191c0529002aef5c9e758f57dd5f6a6f73d01d62310e907d6bea",
        "original_path": "public/data/mko/inverse-function.json",
        "english_path": "public/data/i18n/editions/mko-inverse-function.en.json"
      }
    },
    "selected_manifest_sha256": "5233edba9654a6cffd8b6b2d83c932f82ded15f9c0b7c733bd049943e672acff",
    "selected_part_sha256": "528186aa825c3054db15f4ce0a03ad58f72be7e7eb5bb236c4cc7ef34ff5a470",
    "original_candidate_sha256": "4e59e4908a3b5c9e7405b3a93e525b50b08a2ce45fcb099002c527659fe3fdb7",
    "original_candidate_line_sha256": "4e59e4908a3b5c9e7405b3a93e525b50b08a2ce45fcb099002c527659fe3fdb7"
  },
  "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-p65",
    "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": "8b9ea3ddfab468e9e3f0a0fc0f7682987d5e030be0d7c8860fd85df19cbe183b",
      "question_first_witness_sha256": "066bfeab8fc279706861faade71b9a18a61a25235fc48700092f0488d2a6da6a"
    },
    "status": "second_context_reviewed",
    "mathematical_semantics": true,
    "bilingual_semantics": true,
    "steps_reviewed": 60,
    "method": "family_template_semantic_review_plus_independent_per_instance_reconstruction",
    "exact_question_first_check": {
      "model_sha256": "04d3f7b1b53a2175e0fd8707acf3c0dbdc2b84c660bca89bf8f716e25f5ad050",
      "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."
  }
}
