{
  "name": "Game theory",
  "version": "1.0.0",
  "area": {
    "name": "Game theory",
    "slug": "games",
    "group": "Computation",
    "kind": "games",
    "summary": "A winning move is defined against optimal opponent responses, rather than against one friendly execution.",
    "definitions": [
      {
        "term": "Normal play",
        "definition": "The player with no legal move loses."
      },
      {
        "term": "Winning position",
        "definition": "A state with at least one move to a losing position for the opponent."
      },
      {
        "term": "Strategy",
        "definition": "A legal choice for every winning state in the declared game domain."
      }
    ],
    "methodology": [
      "Set the empty heap to losing.",
      "Process heap sizes in increasing order.",
      "Mark a heap winning if an allowed subtraction reaches a losing heap.",
      "Validate every submitted winning move and every losing-state marker."
    ],
    "complexity": "N heap sizes with m allowed moves require O(Nm) dynamic-programming checks.",
    "common_error": "A single successful play does not establish a strategy against all opponent choices.",
    "next_question": "Add alternating-player reachability graphs and strategy certificates.",
    "references": [
      "https://isa-afp.org/entries/Parity_Game.html"
    ]
  },
  "records": [
    {
      "id": "KL-FCS-049",
      "version": "1.0.0",
      "domain": "Game theory",
      "kind": "games",
      "title": "Take one or two stones",
      "problem": "Classify each heap size and certify a winning strategy under optimal normal play.",
      "specification": {
        "moves": [
          1,
          2
        ],
        "max_heap": 12,
        "terminal_rule": "A player unable to move loses; no draws; perfect information."
      },
      "claim": {
        "winning_positions": [
          1,
          2,
          4,
          5,
          7,
          8,
          10,
          11
        ]
      },
      "witness": {
        "strategy": [
          null,
          1,
          2,
          null,
          1,
          2,
          null,
          1,
          2,
          null,
          1,
          2,
          null
        ]
      },
      "verification_scope": "Complete backward classification · 13 states",
      "explanation": "Every winning state has a legal move to a losing state. A losing state has no such move, so the opponent controls the next winning position.",
      "limitations": "These are finite impartial subtraction games, not equilibrium analyses of simultaneous or imperfect-information games.",
      "verification_status": "mechanically-checked",
      "review_status": "awaiting-independent-review",
      "provenance": {
        "origin": "Original Kenton Labs reference instance, authored with Codex assistance on 2026-10-11.",
        "external_dataset": null,
        "model_run": null
      },
      "references": [
        "https://isa-afp.org/entries/Parity_Game.html"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "games",
        "task": "Classify each heap size and certify a winning strategy under optimal normal play.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete backward classification · 13 states",
        "acceptance": [
          "Set the empty heap to losing.",
          "Process heap sizes in increasing order.",
          "Mark a heap winning if an allowed subtraction reaches a losing heap.",
          "Validate every submitted winning move and every losing-state marker."
        ],
        "generation": "Deterministic finite fixture; full enumeration or witness replay as stated.",
        "split_policy": "Reference corpus for exposition and reproduction; no train/test evaluation split is claimed."
      },
      "lesson": {
        "motivation": "A winning move is defined against optimal opponent responses, rather than against one friendly execution.",
        "definitions": [
          {
            "term": "Normal play",
            "definition": "The player with no legal move loses."
          },
          {
            "term": "Winning position",
            "definition": "A state with at least one move to a losing position for the opponent."
          },
          {
            "term": "Strategy",
            "definition": "A legal choice for every winning state in the declared game domain."
          }
        ],
        "reasoning": [
          "Set the empty heap to losing.",
          "Process heap sizes in increasing order.",
          "Mark a heap winning if an allowed subtraction reaches a losing heap.",
          "Validate every submitted winning move and every losing-state marker."
        ],
        "worked_example": "Every winning state has a legal move to a losing state. A losing state has no such move, so the opponent controls the next winning position.",
        "complexity": "N heap sizes with m allowed moves require O(Nm) dynamic-programming checks.",
        "common_error": "A single successful play does not establish a strategy against all opponent choices.",
        "further_work": "Add alternating-player reachability graphs and strategy certificates."
      },
      "related_ids": [
        "KL-FCS-050",
        "KL-FCS-051"
      ]
    },
    {
      "id": "KL-FCS-050",
      "version": "1.0.0",
      "domain": "Game theory",
      "kind": "games",
      "title": "Odd-sized subtraction choices",
      "problem": "Classify each heap size and certify a winning strategy under optimal normal play.",
      "specification": {
        "moves": [
          1,
          3
        ],
        "max_heap": 16,
        "terminal_rule": "A player unable to move loses; no draws; perfect information."
      },
      "claim": {
        "winning_positions": [
          1,
          3,
          5,
          7,
          9,
          11,
          13,
          15
        ]
      },
      "witness": {
        "strategy": [
          null,
          1,
          null,
          1,
          null,
          1,
          null,
          1,
          null,
          1,
          null,
          1,
          null,
          1,
          null,
          1,
          null
        ]
      },
      "verification_scope": "Complete backward classification · 17 states",
      "explanation": "Every winning state has a legal move to a losing state. A losing state has no such move, so the opponent controls the next winning position.",
      "limitations": "These are finite impartial subtraction games, not equilibrium analyses of simultaneous or imperfect-information games.",
      "verification_status": "mechanically-checked",
      "review_status": "awaiting-independent-review",
      "provenance": {
        "origin": "Original Kenton Labs reference instance, authored with Codex assistance on 2026-10-11.",
        "external_dataset": null,
        "model_run": null
      },
      "references": [
        "https://isa-afp.org/entries/Parity_Game.html"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "games",
        "task": "Classify each heap size and certify a winning strategy under optimal normal play.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete backward classification · 17 states",
        "acceptance": [
          "Set the empty heap to losing.",
          "Process heap sizes in increasing order.",
          "Mark a heap winning if an allowed subtraction reaches a losing heap.",
          "Validate every submitted winning move and every losing-state marker."
        ],
        "generation": "Deterministic finite fixture; full enumeration or witness replay as stated.",
        "split_policy": "Reference corpus for exposition and reproduction; no train/test evaluation split is claimed."
      },
      "lesson": {
        "motivation": "A winning move is defined against optimal opponent responses, rather than against one friendly execution.",
        "definitions": [
          {
            "term": "Normal play",
            "definition": "The player with no legal move loses."
          },
          {
            "term": "Winning position",
            "definition": "A state with at least one move to a losing position for the opponent."
          },
          {
            "term": "Strategy",
            "definition": "A legal choice for every winning state in the declared game domain."
          }
        ],
        "reasoning": [
          "Set the empty heap to losing.",
          "Process heap sizes in increasing order.",
          "Mark a heap winning if an allowed subtraction reaches a losing heap.",
          "Validate every submitted winning move and every losing-state marker."
        ],
        "worked_example": "Every winning state has a legal move to a losing state. A losing state has no such move, so the opponent controls the next winning position.",
        "complexity": "N heap sizes with m allowed moves require O(Nm) dynamic-programming checks.",
        "common_error": "A single successful play does not establish a strategy against all opponent choices.",
        "further_work": "Add alternating-player reachability graphs and strategy certificates."
      },
      "related_ids": [
        "KL-FCS-049",
        "KL-FCS-051"
      ]
    },
    {
      "id": "KL-FCS-051",
      "version": "1.0.0",
      "domain": "Game theory",
      "kind": "games",
      "title": "A game with a nontrivial move set",
      "problem": "Classify each heap size and certify a winning strategy under optimal normal play.",
      "specification": {
        "moves": [
          2,
          3,
          5
        ],
        "max_heap": 20,
        "terminal_rule": "A player unable to move loses; no draws; perfect information."
      },
      "claim": {
        "winning_positions": [
          2,
          3,
          4,
          5,
          6,
          9,
          10,
          11,
          12,
          13,
          16,
          17,
          18,
          19,
          20
        ]
      },
      "witness": {
        "strategy": [
          null,
          null,
          2,
          2,
          3,
          5,
          5,
          null,
          null,
          2,
          2,
          3,
          5,
          5,
          null,
          null,
          2,
          2,
          3,
          5,
          5
        ]
      },
      "verification_scope": "Complete backward classification · 21 states",
      "explanation": "Every winning state has a legal move to a losing state. A losing state has no such move, so the opponent controls the next winning position.",
      "limitations": "These are finite impartial subtraction games, not equilibrium analyses of simultaneous or imperfect-information games.",
      "verification_status": "mechanically-checked",
      "review_status": "awaiting-independent-review",
      "provenance": {
        "origin": "Original Kenton Labs reference instance, authored with Codex assistance on 2026-10-11.",
        "external_dataset": null,
        "model_run": null
      },
      "references": [
        "https://isa-afp.org/entries/Parity_Game.html"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "games",
        "task": "Classify each heap size and certify a winning strategy under optimal normal play.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete backward classification · 21 states",
        "acceptance": [
          "Set the empty heap to losing.",
          "Process heap sizes in increasing order.",
          "Mark a heap winning if an allowed subtraction reaches a losing heap.",
          "Validate every submitted winning move and every losing-state marker."
        ],
        "generation": "Deterministic finite fixture; full enumeration or witness replay as stated.",
        "split_policy": "Reference corpus for exposition and reproduction; no train/test evaluation split is claimed."
      },
      "lesson": {
        "motivation": "A winning move is defined against optimal opponent responses, rather than against one friendly execution.",
        "definitions": [
          {
            "term": "Normal play",
            "definition": "The player with no legal move loses."
          },
          {
            "term": "Winning position",
            "definition": "A state with at least one move to a losing position for the opponent."
          },
          {
            "term": "Strategy",
            "definition": "A legal choice for every winning state in the declared game domain."
          }
        ],
        "reasoning": [
          "Set the empty heap to losing.",
          "Process heap sizes in increasing order.",
          "Mark a heap winning if an allowed subtraction reaches a losing heap.",
          "Validate every submitted winning move and every losing-state marker."
        ],
        "worked_example": "Every winning state has a legal move to a losing state. A losing state has no such move, so the opponent controls the next winning position.",
        "complexity": "N heap sizes with m allowed moves require O(Nm) dynamic-programming checks.",
        "common_error": "A single successful play does not establish a strategy against all opponent choices.",
        "further_work": "Add alternating-player reachability graphs and strategy certificates."
      },
      "related_ids": [
        "KL-FCS-049",
        "KL-FCS-050"
      ]
    }
  ],
  "verification": [
    {
      "id": "KL-FCS-049",
      "status": "mechanically-checked",
      "check_units": 13,
      "scope": "Complete backward classification · 13 states",
      "review_status": "awaiting-independent-review"
    },
    {
      "id": "KL-FCS-050",
      "status": "mechanically-checked",
      "check_units": 17,
      "scope": "Complete backward classification · 17 states",
      "review_status": "awaiting-independent-review"
    },
    {
      "id": "KL-FCS-051",
      "status": "mechanically-checked",
      "check_units": 21,
      "scope": "Complete backward classification · 21 states",
      "review_status": "awaiting-independent-review"
    }
  ]
}
