{
  "exact_scope": "finite-product decisions of all regular certificate obligations",
  "examples": [
    {
      "exact_check": {
        "bound": 0,
        "valid": true
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0
          ],
          "table": [
            [
              0,
              "a",
              0,
              1
            ],
            [
              0,
              "c",
              0,
              1
            ],
            [
              0,
              "b",
              0,
              -1
            ],
            [
              0,
              "d",
              0,
              -1
            ],
            [
              0,
              "x",
              0,
              0
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  2
                ],
                [
                  2,
                  0
                ],
                [
                  2,
                  2
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                1
              ],
              "start": 0,
              "transitions": [
                [
                  3,
                  1
                ],
                [
                  2,
                  3
                ],
                [
                  3,
                  1
                ],
                [
                  3,
                  3
                ]
              ]
            },
            "e": 0,
            "q": 1,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                1
              ],
              "start": 0,
              "transitions": [
                [
                  3,
                  1
                ],
                [
                  2,
                  3
                ],
                [
                  3,
                  1
                ],
                [
                  3,
                  3
                ]
              ]
            },
            "e": 0,
            "q": 2,
            "r": 0
          }
        ],
        "source": {
          "alphabet": [
            "a",
            "c",
            "b",
            "d",
            "x"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "a",
              "next": 1,
              "op": "push",
              "q": 0,
              "symbol": "B"
            },
            {
              "guard": [
                "B"
              ],
              "letter": "c",
              "next": 0,
              "op": "push",
              "q": 1,
              "symbol": "A"
            },
            {
              "guard": [
                "A"
              ],
              "letter": "b",
              "next": 2,
              "op": "pop",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                "B"
              ],
              "letter": "d",
              "next": 0,
              "op": "pop",
              "q": 2,
              "symbol": null
            },
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "keep",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "push",
              "q": 0,
              "symbol": "B"
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0,
            1,
            2
          ]
        }
      },
      "name": "alternating_symbol_pairs"
    },
    {
      "exact_check": {
        "bound": 0,
        "valid": true
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0
          ],
          "table": [
            [
              0,
              "x",
              0,
              0
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  1
                ],
                [
                  1,
                  1
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          }
        ],
        "source": {
          "alphabet": [
            "x"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "pop",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "keep",
              "q": 0,
              "symbol": null
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0
          ]
        }
      },
      "name": "bottom_pop_keep"
    },
    {
      "exact_check": {
        "bound": 1,
        "valid": true
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0
          ],
          "table": [
            [
              0,
              "x",
              0,
              0
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  1
                ],
                [
                  1,
                  1
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                1
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  2
                ],
                [
                  2,
                  2
                ],
                [
                  2,
                  2
                ]
              ]
            },
            "e": 1,
            "q": 0,
            "r": 0
          }
        ],
        "source": {
          "alphabet": [
            "x"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null
              ],
              "letter": "x",
              "next": 0,
              "op": "push",
              "q": 0,
              "symbol": "A"
            },
            {
              "guard": [
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "keep",
              "q": 0,
              "symbol": null
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0
          ]
        }
      },
      "name": "guarded_push_once"
    },
    {
      "exact_check": {
        "bound": 1,
        "valid": true
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0,
            1
          ],
          "table": [
            [
              0,
              "x",
              1,
              1
            ],
            [
              1,
              "x",
              1,
              0
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  1
                ],
                [
                  1,
                  1
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  1
                ],
                [
                  1,
                  1
                ]
              ]
            },
            "e": -1,
            "q": 0,
            "r": 1
          }
        ],
        "source": {
          "alphabet": [
            "x"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "pop",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "keep",
              "q": 0,
              "symbol": null
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0
          ]
        }
      },
      "name": "clock_ahead"
    },
    {
      "exact_check": {
        "clock_zero": false,
        "mode": [
          0,
          0,
          0
        ],
        "reason": "closure",
        "rule_index": 5,
        "stack": [
          "B"
        ],
        "target_mode": [
          0,
          0,
          1
        ],
        "target_stack": [
          "B",
          "B"
        ],
        "valid": false
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0
          ],
          "table": [
            [
              0,
              "a",
              0,
              1
            ],
            [
              0,
              "c",
              0,
              1
            ],
            [
              0,
              "b",
              0,
              -1
            ],
            [
              0,
              "d",
              0,
              -1
            ],
            [
              0,
              "x",
              0,
              0
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  0,
                  0
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  0,
                  0
                ]
              ]
            },
            "e": 0,
            "q": 1,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  0,
                  0
                ]
              ]
            },
            "e": 0,
            "q": 2,
            "r": 0
          }
        ],
        "source": {
          "alphabet": [
            "a",
            "c",
            "b",
            "d",
            "x"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "a",
              "next": 1,
              "op": "push",
              "q": 0,
              "symbol": "B"
            },
            {
              "guard": [
                "B"
              ],
              "letter": "c",
              "next": 0,
              "op": "push",
              "q": 1,
              "symbol": "A"
            },
            {
              "guard": [
                "A"
              ],
              "letter": "b",
              "next": 2,
              "op": "pop",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                "B"
              ],
              "letter": "d",
              "next": 0,
              "op": "pop",
              "q": 2,
              "symbol": null
            },
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "keep",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "push",
              "q": 0,
              "symbol": "B"
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0,
            1,
            2
          ]
        }
      },
      "name": "forgot_all_symbols"
    },
    {
      "exact_check": {
        "clock_zero": false,
        "mode": [
          0,
          0,
          0
        ],
        "reason": "closure",
        "rule_index": 2,
        "stack": [
          "A"
        ],
        "target_mode": [
          2,
          0,
          0
        ],
        "target_stack": [],
        "valid": false
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0
          ],
          "table": [
            [
              0,
              "a",
              0,
              1
            ],
            [
              0,
              "c",
              0,
              1
            ],
            [
              0,
              "b",
              0,
              -1
            ],
            [
              0,
              "d",
              0,
              -1
            ],
            [
              0,
              "x",
              0,
              0
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0,
                1
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  2
                ],
                [
                  1,
                  1
                ],
                [
                  2,
                  2
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                1
              ],
              "start": 0,
              "transitions": [
                [
                  2,
                  1
                ],
                [
                  1,
                  1
                ],
                [
                  2,
                  2
                ]
              ]
            },
            "e": 0,
            "q": 1,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                1
              ],
              "start": 0,
              "transitions": [
                [
                  2,
                  1
                ],
                [
                  1,
                  1
                ],
                [
                  2,
                  2
                ]
              ]
            },
            "e": 0,
            "q": 2,
            "r": 0
          }
        ],
        "source": {
          "alphabet": [
            "a",
            "c",
            "b",
            "d",
            "x"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "a",
              "next": 1,
              "op": "push",
              "q": 0,
              "symbol": "B"
            },
            {
              "guard": [
                "B"
              ],
              "letter": "c",
              "next": 0,
              "op": "push",
              "q": 1,
              "symbol": "A"
            },
            {
              "guard": [
                "A"
              ],
              "letter": "b",
              "next": 2,
              "op": "pop",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                "B"
              ],
              "letter": "d",
              "next": 0,
              "op": "pop",
              "q": 2,
              "symbol": null
            },
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "keep",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "push",
              "q": 0,
              "symbol": "B"
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0,
            1,
            2
          ]
        }
      },
      "name": "kept_only_top"
    },
    {
      "exact_check": {
        "clock_zero": true,
        "mode": [
          0,
          0,
          1
        ],
        "reason": "closure",
        "rule_index": 0,
        "stack": [
          "A"
        ],
        "target_mode": [
          0,
          0,
          2
        ],
        "target_stack": [
          "A",
          "A"
        ],
        "valid": false
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0
          ],
          "table": [
            [
              0,
              "x",
              0,
              0
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  1
                ],
                [
                  1,
                  1
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                1
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  2
                ],
                [
                  2,
                  2
                ],
                [
                  2,
                  2
                ]
              ]
            },
            "e": 1,
            "q": 0,
            "r": 0
          }
        ],
        "source": {
          "alphabet": [
            "x"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "push",
              "q": 0,
              "symbol": "A"
            },
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "keep",
              "q": 0,
              "symbol": null
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0
          ]
        }
      },
      "name": "unbounded_push_keep_candidate"
    },
    {
      "exact_check": {
        "mode": [
          0,
          0,
          1
        ],
        "reason": "negative implicit clock",
        "stack": [],
        "valid": false
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0
          ],
          "table": [
            [
              0,
              "x",
              0,
              0
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  1
                ],
                [
                  1,
                  1
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          },
          {
            "dfa": {
              "final": [
                0
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  1
                ],
                [
                  1,
                  1
                ]
              ]
            },
            "e": 1,
            "q": 0,
            "r": 0
          }
        ],
        "source": {
          "alphabet": [
            "x"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "pop",
              "q": 0,
              "symbol": null
            },
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "x",
              "next": 0,
              "op": "keep",
              "q": 0,
              "symbol": null
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0
          ]
        }
      },
      "name": "invalid_clock_coordinate"
    },
    {
      "exact_check": {
        "clock_zero": false,
        "mode": [
          0,
          0,
          0
        ],
        "reason": "closure",
        "rule_index": 0,
        "stack": [
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A"
        ],
        "target_mode": [
          0,
          0,
          0
        ],
        "target_stack": [
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A",
          "A"
        ],
        "valid": false
      },
      "instance": {
        "clock": {
          "initial": 0,
          "states": [
            0
          ],
          "table": [
            [
              0,
              "a",
              0,
              1
            ]
          ]
        },
        "rows": [
          {
            "dfa": {
              "final": [
                0,
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12
              ],
              "start": 0,
              "transitions": [
                [
                  1,
                  13
                ],
                [
                  2,
                  13
                ],
                [
                  3,
                  13
                ],
                [
                  4,
                  13
                ],
                [
                  5,
                  13
                ],
                [
                  6,
                  13
                ],
                [
                  7,
                  13
                ],
                [
                  8,
                  13
                ],
                [
                  9,
                  13
                ],
                [
                  10,
                  13
                ],
                [
                  11,
                  13
                ],
                [
                  12,
                  13
                ],
                [
                  13,
                  13
                ],
                [
                  13,
                  13
                ]
              ]
            },
            "e": 0,
            "q": 0,
            "r": 0
          }
        ],
        "source": {
          "alphabet": [
            "a"
          ],
          "initial": [
            0
          ],
          "rules": [
            {
              "guard": [
                null,
                "A",
                "B"
              ],
              "letter": "a",
              "next": 0,
              "op": "push",
              "q": 0,
              "symbol": "A"
            }
          ],
          "stack_alphabet": [
            "A",
            "B"
          ],
          "states": [
            0
          ]
        }
      },
      "name": "failure_at_length_twelve"
    }
  ],
  "finite_audit": {
    "coordinate_cases": 3870,
    "coordinate_ranges": {
      "alphabet": [
        "A",
        "B"
      ],
      "clock_output": [
        -1,
        0,
        1
      ],
      "e": [
        -3,
        3
      ],
      "operations": [
        "push A",
        "pop",
        "keep"
      ],
      "restriction": "nonnegative implicit clock",
      "stack_length": [
        0,
        5
      ]
    },
    "exact_product_vs_direct_cases": 9216,
    "status": "bounded implementation corroboration passed",
    "unary_dfa_descriptions": 16,
    "unary_ranges": {
      "DFA_states": 2,
      "clock_cases": [
        "zero",
        "positive"
      ],
      "direct_lengths": [
        0,
        16
      ],
      "e": [
        -1,
        1
      ],
      "operations": [
        "push A",
        "pop",
        "keep"
      ],
      "start": 0,
      "top_cases": [
        "empty",
        "A"
      ],
      "transitions_and_finals": "all"
    }
  },
  "not_implemented": [
    "saturation",
    "synthesis",
    "VPA determinization",
    "scaffold generation",
    "proof assistant"
  ],
  "note": "regular-stack-certificates.md"
}
