{
  "name": "Automata",
  "version": "1.0.0",
  "area": {
    "name": "Automata",
    "slug": "automata",
    "group": "Languages & logic",
    "kind": "automata",
    "summary": "Compare complete transition systems through their reachable product, rather than checking a short sample of strings.",
    "definitions": [
      {
        "term": "DFA",
        "definition": "A deterministic transition function over a finite state set and alphabet."
      },
      {
        "term": "Product state",
        "definition": "A pair of states reached by reading the same prefix in both automata."
      },
      {
        "term": "Distinguishing word",
        "definition": "A finite input accepted by exactly one of the compared machines."
      }
    ],
    "methodology": [
      "Start from the pair of initial states.",
      "Explore every symbol transition until no new pair is reachable.",
      "Compare acceptance in every reachable pair.",
      "For inequivalence, replay a distinguishing input from both initial states."
    ],
    "complexity": "At most |Q₁|·|Q₂| product states are visited, with one outgoing edge per alphabet symbol.",
    "common_error": "Bounded string testing is weaker than complete DFA product exploration.",
    "next_question": "Extend the checker to emit shortest distinguishing words and state-minimization partitions.",
    "references": [
      "https://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/download/"
    ]
  },
  "records": [
    {
      "id": "KL-FCS-002",
      "version": "1.0.0",
      "domain": "Automata",
      "kind": "automata",
      "title": "Two automata, one parity language",
      "problem": "Decide whether two complete deterministic automata accept the same binary strings.",
      "specification": {
        "alphabet": [
          "0",
          "1"
        ],
        "left": {
          "start": "E",
          "accepting": [
            "E"
          ],
          "transitions": {
            "E": {
              "0": "E",
              "1": "O"
            },
            "O": {
              "0": "O",
              "1": "E"
            }
          }
        }
      },
      "claim": {
        "equivalent": true
      },
      "witness": {
        "right": {
          "start": "A",
          "accepting": [
            "A",
            "B"
          ],
          "transitions": {
            "A": {
              "0": "B",
              "1": "C"
            },
            "B": {
              "0": "A",
              "1": "C"
            },
            "C": {
              "0": "C",
              "1": "A"
            }
          }
        }
      },
      "verification_scope": "Complete reachable product · 3 state pairs",
      "explanation": "Starting from the initial pair, the checker explores every reachable pair of states and requires matching acceptance. No mismatch is reachable, so equivalence holds for every finite binary word. Both accept an even number of ones.",
      "limitations": "Applies only to these two specified complete deterministic automata; no claim of automaton minimality.",
      "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://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/download/"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "automata",
        "task": "Decide whether two complete deterministic automata accept the same binary strings.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete reachable product · 3 state pairs",
        "acceptance": [
          "Start from the pair of initial states.",
          "Explore every symbol transition until no new pair is reachable.",
          "Compare acceptance in every reachable pair.",
          "For inequivalence, replay a distinguishing input from both initial states."
        ],
        "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": "Compare complete transition systems through their reachable product, rather than checking a short sample of strings.",
        "definitions": [
          {
            "term": "DFA",
            "definition": "A deterministic transition function over a finite state set and alphabet."
          },
          {
            "term": "Product state",
            "definition": "A pair of states reached by reading the same prefix in both automata."
          },
          {
            "term": "Distinguishing word",
            "definition": "A finite input accepted by exactly one of the compared machines."
          }
        ],
        "reasoning": [
          "Start from the pair of initial states.",
          "Explore every symbol transition until no new pair is reachable.",
          "Compare acceptance in every reachable pair.",
          "For inequivalence, replay a distinguishing input from both initial states."
        ],
        "worked_example": "Starting from the initial pair, the checker explores every reachable pair of states and requires matching acceptance. No mismatch is reachable, so equivalence holds for every finite binary word. Both accept an even number of ones.",
        "complexity": "At most |Q₁|·|Q₂| product states are visited, with one outgoing edge per alphabet symbol.",
        "common_error": "Bounded string testing is weaker than complete DFA product exploration.",
        "further_work": "Extend the checker to emit shortest distinguishing words and state-minimization partitions."
      },
      "related_ids": [
        "KL-FCS-014",
        "KL-FCS-015"
      ]
    },
    {
      "id": "KL-FCS-014",
      "version": "1.0.0",
      "domain": "Automata",
      "kind": "automata",
      "title": "Parity language under renaming",
      "problem": "Compare two isomorphic parity automata.",
      "specification": {
        "alphabet": [
          "0",
          "1"
        ],
        "left": {
          "start": "E",
          "accepting": [
            "E"
          ],
          "transitions": {
            "E": {
              "0": "E",
              "1": "O"
            },
            "O": {
              "0": "O",
              "1": "E"
            }
          }
        }
      },
      "claim": {
        "equivalent": true
      },
      "witness": {
        "right": {
          "start": "S",
          "accepting": [
            "S"
          ],
          "transitions": {
            "S": {
              "0": "S",
              "1": "T"
            },
            "T": {
              "0": "T",
              "1": "S"
            }
          }
        }
      },
      "verification_scope": "Complete product reachability",
      "explanation": "Renaming states preserves transitions and acceptance. The checker establishes equivalence over every finite binary word.",
      "limitations": "This certificate concerns the declared deterministic machines only.",
      "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://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/download/"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "automata",
        "task": "Compare two isomorphic parity automata.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete product reachability",
        "acceptance": [
          "Start from the pair of initial states.",
          "Explore every symbol transition until no new pair is reachable.",
          "Compare acceptance in every reachable pair.",
          "For inequivalence, replay a distinguishing input from both initial states."
        ],
        "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": "Compare complete transition systems through their reachable product, rather than checking a short sample of strings.",
        "definitions": [
          {
            "term": "DFA",
            "definition": "A deterministic transition function over a finite state set and alphabet."
          },
          {
            "term": "Product state",
            "definition": "A pair of states reached by reading the same prefix in both automata."
          },
          {
            "term": "Distinguishing word",
            "definition": "A finite input accepted by exactly one of the compared machines."
          }
        ],
        "reasoning": [
          "Start from the pair of initial states.",
          "Explore every symbol transition until no new pair is reachable.",
          "Compare acceptance in every reachable pair.",
          "For inequivalence, replay a distinguishing input from both initial states."
        ],
        "worked_example": "Renaming states preserves transitions and acceptance. The checker establishes equivalence over every finite binary word.",
        "complexity": "At most |Q₁|·|Q₂| product states are visited, with one outgoing edge per alphabet symbol.",
        "common_error": "Bounded string testing is weaker than complete DFA product exploration.",
        "further_work": "Extend the checker to emit shortest distinguishing words and state-minimization partitions."
      },
      "related_ids": [
        "KL-FCS-002",
        "KL-FCS-015"
      ]
    },
    {
      "id": "KL-FCS-015",
      "version": "1.0.0",
      "domain": "Automata",
      "kind": "automata",
      "title": "A one-symbol counterexample",
      "problem": "Compare even-parity acceptance with the same transitions but odd-parity acceptance.",
      "specification": {
        "alphabet": [
          "0",
          "1"
        ],
        "left": {
          "start": "E",
          "accepting": [
            "E"
          ],
          "transitions": {
            "E": {
              "0": "E",
              "1": "O"
            },
            "O": {
              "0": "O",
              "1": "E"
            }
          }
        }
      },
      "claim": {
        "equivalent": false
      },
      "witness": {
        "right": {
          "start": "E",
          "accepting": [
            "O"
          ],
          "transitions": {
            "E": {
              "0": "E",
              "1": "O"
            },
            "O": {
              "0": "O",
              "1": "E"
            }
          }
        },
        "distinguishing_word": "1"
      },
      "verification_scope": "Complete product + distinguishing-word replay",
      "explanation": "Reading 1 moves both machines to O. The first rejects and the second accepts. The witness refutes equivalence immediately.",
      "limitations": "A counterexample is sufficient for inequivalence; it does not characterize all differing inputs.",
      "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://ocw.mit.edu/courses/18-404j-theory-of-computation-fall-2020/download/"
      ],
      "license_status": "not-yet-selected",
      "dataset": {
        "family": "automata",
        "task": "Compare even-parity acceptance with the same transitions but odd-parity acceptance.",
        "input_encoding": "Structured JSON; field meanings are stated in the specification.",
        "coverage": "Complete product + distinguishing-word replay",
        "acceptance": [
          "Start from the pair of initial states.",
          "Explore every symbol transition until no new pair is reachable.",
          "Compare acceptance in every reachable pair.",
          "For inequivalence, replay a distinguishing input from both initial states."
        ],
        "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": "Compare complete transition systems through their reachable product, rather than checking a short sample of strings.",
        "definitions": [
          {
            "term": "DFA",
            "definition": "A deterministic transition function over a finite state set and alphabet."
          },
          {
            "term": "Product state",
            "definition": "A pair of states reached by reading the same prefix in both automata."
          },
          {
            "term": "Distinguishing word",
            "definition": "A finite input accepted by exactly one of the compared machines."
          }
        ],
        "reasoning": [
          "Start from the pair of initial states.",
          "Explore every symbol transition until no new pair is reachable.",
          "Compare acceptance in every reachable pair.",
          "For inequivalence, replay a distinguishing input from both initial states."
        ],
        "worked_example": "Reading 1 moves both machines to O. The first rejects and the second accepts. The witness refutes equivalence immediately.",
        "complexity": "At most |Q₁|·|Q₂| product states are visited, with one outgoing edge per alphabet symbol.",
        "common_error": "Bounded string testing is weaker than complete DFA product exploration.",
        "further_work": "Extend the checker to emit shortest distinguishing words and state-minimization partitions."
      },
      "related_ids": [
        "KL-FCS-002",
        "KL-FCS-014"
      ]
    }
  ],
  "verification": [
    {
      "id": "KL-FCS-002",
      "status": "mechanically-checked",
      "check_units": 3,
      "scope": "Complete reachable product · 3 state pairs",
      "review_status": "awaiting-independent-review"
    },
    {
      "id": "KL-FCS-014",
      "status": "mechanically-checked",
      "check_units": 2,
      "scope": "Complete product reachability",
      "review_status": "awaiting-independent-review"
    },
    {
      "id": "KL-FCS-015",
      "status": "mechanically-checked",
      "check_units": 2,
      "scope": "Complete product + distinguishing-word replay",
      "review_status": "awaiting-independent-review"
    }
  ]
}
