{
  "examples": [
    {
      "name": "normal",
      "cycles": 13,
      "registers": [
        0,
        7,
        3,
        4,
        15,
        11
      ],
      "memory": {
        "0": 15
      },
      "trap": null,
      "committed_map": [
        0,
        8,
        2,
        3,
        7,
        9
      ],
      "speculative_map": [
        0,
        8,
        2,
        3,
        7,
        9
      ],
      "free": [
        1,
        4,
        5,
        6,
        10
      ],
      "trace": [
        {
          "cycle": 1,
          "events": [
            {
              "kind": "rename",
              "pc": 0,
              "sources": [
                2,
                3
              ],
              "destination": 6,
              "stale": 1
            }
          ]
        },
        {
          "cycle": 2,
          "events": [
            {
              "kind": "issue",
              "pc": 0,
              "operands": [
                3,
                4
              ],
              "unit": "MUL",
              "eligible": 8
            },
            {
              "kind": "rename",
              "pc": 1,
              "sources": [
                6,
                2
              ],
              "destination": 7,
              "stale": 4
            }
          ]
        },
        {
          "cycle": 3,
          "events": [
            {
              "kind": "rename",
              "pc": 2,
              "sources": [],
              "destination": 8,
              "stale": 6
            }
          ]
        },
        {
          "cycle": 4,
          "events": [
            {
              "kind": "issue",
              "pc": 2,
              "operands": [],
              "unit": "ALU",
              "eligible": 5
            },
            {
              "kind": "rename",
              "pc": 3,
              "sources": [
                8,
                3
              ],
              "destination": 9,
              "stale": 5
            }
          ]
        },
        {
          "cycle": 5,
          "events": [
            {
              "kind": "publish",
              "pc": 2,
              "destination": 8,
              "result": 7,
              "error": null
            },
            {
              "kind": "issue",
              "pc": 3,
              "operands": [
                7,
                4
              ],
              "unit": "ALU",
              "eligible": 6
            },
            {
              "kind": "rename",
              "pc": 4,
              "sources": [
                7
              ],
              "destination": null,
              "stale": null
            }
          ]
        },
        {
          "cycle": 6,
          "events": [
            {
              "kind": "publish",
              "pc": 3,
              "destination": 9,
              "result": 11,
              "error": null
            }
          ]
        },
        {
          "cycle": 7,
          "events": []
        },
        {
          "cycle": 8,
          "events": [
            {
              "kind": "publish",
              "pc": 0,
              "destination": 6,
              "result": 12,
              "error": null
            },
            {
              "kind": "issue",
              "pc": 1,
              "operands": [
                12,
                3
              ],
              "unit": "ALU",
              "eligible": 9
            }
          ]
        },
        {
          "cycle": 9,
          "events": [
            {
              "kind": "retire",
              "pc": 0,
              "destination": 6,
              "released": 1,
              "store": null
            },
            {
              "kind": "publish",
              "pc": 1,
              "destination": 7,
              "result": 15,
              "error": null
            },
            {
              "kind": "issue",
              "pc": 4,
              "operands": [
                15
              ],
              "unit": "STORE",
              "eligible": 10
            }
          ]
        },
        {
          "cycle": 10,
          "events": [
            {
              "kind": "retire",
              "pc": 1,
              "destination": 7,
              "released": 4,
              "store": null
            },
            {
              "kind": "publish",
              "pc": 4,
              "destination": null,
              "result": 15,
              "error": null
            }
          ]
        },
        {
          "cycle": 11,
          "events": [
            {
              "kind": "retire",
              "pc": 2,
              "destination": 8,
              "released": 6,
              "store": null
            }
          ]
        },
        {
          "cycle": 12,
          "events": [
            {
              "kind": "retire",
              "pc": 3,
              "destination": 9,
              "released": 5,
              "store": null
            }
          ]
        },
        {
          "cycle": 13,
          "events": [
            {
              "kind": "retire",
              "pc": 4,
              "destination": null,
              "released": null,
              "store": [
                0,
                15
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "fault",
      "cycles": 10,
      "registers": [
        0,
        12,
        3,
        4,
        0,
        9
      ],
      "memory": {
        "0": 31
      },
      "trap": {
        "pc": 1,
        "cause": "division-by-zero"
      },
      "committed_map": [
        0,
        6,
        2,
        3,
        4,
        5
      ],
      "speculative_map": [
        0,
        6,
        2,
        3,
        4,
        5
      ],
      "free": [
        1,
        7,
        8,
        9,
        10
      ],
      "trace": [
        {
          "cycle": 1,
          "events": [
            {
              "kind": "rename",
              "pc": 0,
              "sources": [
                2,
                3
              ],
              "destination": 6,
              "stale": 1
            }
          ]
        },
        {
          "cycle": 2,
          "events": [
            {
              "kind": "issue",
              "pc": 0,
              "operands": [
                3,
                4
              ],
              "unit": "MUL",
              "eligible": 8
            },
            {
              "kind": "rename",
              "pc": 1,
              "sources": [
                2,
                0
              ],
              "destination": 7,
              "stale": 4
            }
          ]
        },
        {
          "cycle": 3,
          "events": [
            {
              "kind": "issue",
              "pc": 1,
              "operands": [
                3,
                0
              ],
              "unit": "DIV",
              "eligible": 5
            },
            {
              "kind": "rename",
              "pc": 2,
              "sources": [],
              "destination": 8,
              "stale": 6
            }
          ]
        },
        {
          "cycle": 4,
          "events": [
            {
              "kind": "issue",
              "pc": 2,
              "operands": [],
              "unit": "ALU",
              "eligible": 5
            },
            {
              "kind": "rename",
              "pc": 3,
              "sources": [
                3
              ],
              "destination": null,
              "stale": null
            }
          ]
        },
        {
          "cycle": 5,
          "events": [
            {
              "kind": "publish",
              "pc": 1,
              "destination": 7,
              "result": null,
              "error": "division-by-zero"
            },
            {
              "kind": "issue",
              "pc": 3,
              "operands": [
                4
              ],
              "unit": "STORE",
              "eligible": 6
            },
            {
              "kind": "rename",
              "pc": 4,
              "sources": [
                2,
                3
              ],
              "destination": 9,
              "stale": 5
            }
          ]
        },
        {
          "cycle": 6,
          "events": [
            {
              "kind": "publish",
              "pc": 2,
              "destination": 8,
              "result": 99,
              "error": null
            },
            {
              "kind": "issue",
              "pc": 4,
              "operands": [
                3,
                4
              ],
              "unit": "ALU",
              "eligible": 7
            }
          ]
        },
        {
          "cycle": 7,
          "events": [
            {
              "kind": "publish",
              "pc": 3,
              "destination": null,
              "result": 4,
              "error": null
            }
          ]
        },
        {
          "cycle": 8,
          "events": [
            {
              "kind": "publish",
              "pc": 0,
              "destination": 6,
              "result": 12,
              "error": null
            }
          ]
        },
        {
          "cycle": 9,
          "events": [
            {
              "kind": "retire",
              "pc": 0,
              "destination": 6,
              "released": 1,
              "store": null
            },
            {
              "kind": "publish",
              "pc": 4,
              "destination": 9,
              "result": 7,
              "error": null
            }
          ]
        },
        {
          "cycle": 10,
          "events": [
            {
              "kind": "trap",
              "pc": 1,
              "cause": "division-by-zero",
              "cancelled": [
                1,
                2,
                3,
                4
              ]
            }
          ]
        }
      ]
    }
  ],
  "capacity_migrations": [
    {
      "physical": 7,
      "capacity": 1,
      "cycles": 21,
      "stalls": {
        "ROB": 13,
        "PHYSICAL": 0
      }
    },
    {
      "physical": 7,
      "capacity": 8,
      "cycles": 19,
      "stalls": {
        "ROB": 0,
        "PHYSICAL": 11
      }
    },
    {
      "physical": 8,
      "capacity": 2,
      "cycles": 15,
      "stalls": {
        "ROB": 7,
        "PHYSICAL": 0
      }
    },
    {
      "physical": 11,
      "capacity": 8,
      "cycles": 13,
      "stalls": {
        "ROB": 0,
        "PHYSICAL": 0
      }
    }
  ],
  "random": {
    "programs": 1600,
    "cycles": 48539
  },
  "boundaries": {
    "self_source_result": 12,
    "negative_division": -3,
    "cancelled_long_operation_cycle": 5,
    "cancelled_long_operation_trace": [
      {
        "cycle": 1,
        "events": [
          {
            "kind": "rename",
            "pc": 0,
            "sources": [
              1,
              2
            ],
            "destination": 3,
            "stale": 0
          }
        ]
      },
      {
        "cycle": 2,
        "events": [
          {
            "kind": "issue",
            "pc": 0,
            "operands": [
              2,
              0
            ],
            "unit": "DIV",
            "eligible": 4
          },
          {
            "kind": "rename",
            "pc": 1,
            "sources": [
              1,
              1
            ],
            "destination": 4,
            "stale": 1
          }
        ]
      },
      {
        "cycle": 3,
        "events": [
          {
            "kind": "issue",
            "pc": 1,
            "operands": [
              2,
              2
            ],
            "unit": "MUL",
            "eligible": 33
          }
        ]
      },
      {
        "cycle": 4,
        "events": [
          {
            "kind": "publish",
            "pc": 0,
            "destination": 3,
            "result": null,
            "error": "division-by-zero"
          }
        ]
      },
      {
        "cycle": 5,
        "events": [
          {
            "kind": "trap",
            "pc": 0,
            "cause": "division-by-zero",
            "cancelled": [
              0,
              1
            ]
          }
        ]
      }
    ],
    "rejected": [
      "no spare register",
      "zero ROB",
      "zero latency",
      "bool register",
      "bad source"
    ]
  },
  "counterexamples": {
    "destination_before_sources": {
      "phase": "WAIT",
      "source_tags": [
        1,
        1
      ],
      "ready": false
    },
    "reread_latest_name": {
      "r4": 10,
      "memory0": 10,
      "correct_r4": 15
    },
    "store_before_retirement": {
      "memory0": 4,
      "correct_memory0": 31,
      "trap": {
        "pc": 1,
        "cause": "division-by-zero"
      }
    },
    "report_first_detected_exception": {
      "observed_r1": 2,
      "required_r1": 12,
      "discarded_older_multiply_phase": "RUN"
    },
    "free_stale_at_completion": "source lifetime"
  }
}
