{
  "_comment": "Generated by parse_smv.py. Review and edit variable roles before synthesis.",
  "spec_name": "DRC",
  "variables": {
    "Cold_Shutdown": {
      "role": "conflict",
      "input_reasons": [
        "DRCSpec_PWR-2001: condition in \"While !SCRAM If Cold_Shutdown & STARTUP DRC shall at the next timepoint satisfy OP_MODE & Heatup\""
      ],
      "output_reasons": [
        "DRCSpec_PWR-0000: satisfaction in \"DRC shall initially satisfy (Cold_Shutdown & !SCRAM)\"",
        "DRCSpec_PWR-0201: satisfaction in \"When OP_MODE DRC shall always satisfy (Heatup | Load_Follow) & !(!Heatup & !Load_Follow) & !(SCRAM | Cold_Shutdown)\""
      ]
    },
    "Heatup": {
      "role": "conflict",
      "input_reasons": [
        "DRCSpec_PWR-3001: condition in \"While Heatup if t_dot_exceeded DRC shall at the next timepoint satisfy SCRAM\"",
        "DRCSpec_PWR-3003: condition in \"While Heatup if t_power_min DRC shall at the next timepoint satisfy (Load_Follow & !Heatup)\""
      ],
      "output_reasons": [
        "DRCSpec_PWR-0200: satisfaction in \"While OP_MODE DRC shall always satisfy Heatup | Load_Follow\"",
        "DRCSpec_PWR-0201: satisfaction in \"When OP_MODE DRC shall always satisfy (Heatup | Load_Follow) & !(!Heatup & !Load_Follow) & !(SCRAM | Cold_Shutdown)\"",
        "DRCSpec_PWR-0202: satisfaction in \"While !OP_MODE DRC shall always satisfy (Heatup | Load_Follow)\"",
        "DRCSpec_PWR-2001: satisfaction in \"While !SCRAM If Cold_Shutdown & STARTUP DRC shall at the next timepoint satisfy OP_MODE & Heatup\"",
        "DRCSpec_PWR-3003: satisfaction in \"While Heatup if t_power_min DRC shall at the next timepoint satisfy (Load_Follow & !Heatup)\""
      ]
    },
    "Load_Follow": {
      "role": "output",
      "input_reasons": [],
      "output_reasons": [
        "DRCSpec_PWR-0200: satisfaction in \"While OP_MODE DRC shall always satisfy Heatup | Load_Follow\"",
        "DRCSpec_PWR-0201: satisfaction in \"When OP_MODE DRC shall always satisfy (Heatup | Load_Follow) & !(!Heatup & !Load_Follow) & !(SCRAM | Cold_Shutdown)\"",
        "DRCSpec_PWR-0202: satisfaction in \"While !OP_MODE DRC shall always satisfy (Heatup | Load_Follow)\"",
        "DRCSpec_PWR-3003: satisfaction in \"While Heatup if t_power_min DRC shall at the next timepoint satisfy (Load_Follow & !Heatup)\""
      ]
    },
    "OP_MODE": {
      "role": "conflict",
      "input_reasons": [
        "DRCSpec_PWR-0200: condition in \"While OP_MODE DRC shall always satisfy Heatup | Load_Follow\"",
        "DRCSpec_PWR-0201: condition in \"When OP_MODE DRC shall always satisfy (Heatup | Load_Follow) & !(!Heatup & !Load_Follow) & !(SCRAM | Cold_Shutdown)\"",
        "DRCSpec_PWR-0202: condition in \"While !OP_MODE DRC shall always satisfy (Heatup | Load_Follow)\""
      ],
      "output_reasons": [
        "DRCSpec_PWR-0100: satisfaction in \"If SCRAM DRC shall immediately satisfy !OP_MODE\"",
        "DRCSpec_PWR-2001: satisfaction in \"While !SCRAM If Cold_Shutdown & STARTUP DRC shall at the next timepoint satisfy OP_MODE & Heatup\""
      ]
    },
    "SCRAM": {
      "role": "conflict",
      "input_reasons": [
        "DRCSpec_PWR-0100: condition in \"If SCRAM DRC shall immediately satisfy !OP_MODE\"",
        "DRCSpec_PWR-0102: condition in \"If SCRAM DRC shall always satisfy SCRAM\"",
        "DRCSpec_PWR-2001: condition in \"While !SCRAM If Cold_Shutdown & STARTUP DRC shall at the next timepoint satisfy OP_MODE & Heatup\""
      ],
      "output_reasons": [
        "DRCSpec_PWR-0000: satisfaction in \"DRC shall initially satisfy (Cold_Shutdown & !SCRAM)\"",
        "DRCSpec_PWR-0102: satisfaction in \"If SCRAM DRC shall always satisfy SCRAM\"",
        "DRCSpec_PWR-0201: satisfaction in \"When OP_MODE DRC shall always satisfy (Heatup | Load_Follow) & !(!Heatup & !Load_Follow) & !(SCRAM | Cold_Shutdown)\"",
        "DRCSpec_PWR-3001: satisfaction in \"While Heatup if t_dot_exceeded DRC shall at the next timepoint satisfy SCRAM\"",
        "DRCSpec_PWR-3002: satisfaction in \"if t_max_exceeded DRC shall at the next timepoint satisfy SCRAM\""
      ]
    },
    "STARTUP": {
      "role": "input",
      "input_reasons": [
        "DRCSpec_PWR-2001: condition in \"While !SCRAM If Cold_Shutdown & STARTUP DRC shall at the next timepoint satisfy OP_MODE & Heatup\""
      ],
      "output_reasons": []
    },
    "t_dot_exceeded": {
      "role": "input",
      "input_reasons": [
        "DRCSpec_PWR-3001: condition in \"While Heatup if t_dot_exceeded DRC shall at the next timepoint satisfy SCRAM\""
      ],
      "output_reasons": []
    },
    "t_max_exceeded": {
      "role": "input",
      "input_reasons": [
        "DRCSpec_PWR-3002: condition in \"if t_max_exceeded DRC shall at the next timepoint satisfy SCRAM\""
      ],
      "output_reasons": []
    },
    "t_power_min": {
      "role": "input",
      "input_reasons": [
        "DRCSpec_PWR-3003: condition in \"While Heatup if t_power_min DRC shall at the next timepoint satisfy (Load_Follow & !Heatup)\""
      ],
      "output_reasons": []
    }
  },
  "requirements": [
    {
      "req_id": "DRCSpec_PWR-0000",
      "fretish": "DRC shall initially satisfy (Cold_Shutdown & !SCRAM)",
      "ltl": "(Cold_Shutdown & !SCRAM)"
    },
    {
      "req_id": "DRCSpec_PWR-0100",
      "fretish": "If SCRAM DRC shall immediately satisfy !OP_MODE",
      "ltl": "G((SCRAM) -> X(!OP_MODE))"
    },
    {
      "req_id": "DRCSpec_PWR-0102",
      "fretish": "If SCRAM DRC shall always satisfy SCRAM",
      "ltl": "G(SCRAM)"
    },
    {
      "req_id": "DRCSpec_PWR-0200",
      "fretish": "While OP_MODE DRC shall always satisfy Heatup | Load_Follow",
      "ltl": "G((OP_MODE) -> (Heatup | Load_Follow))"
    },
    {
      "req_id": "DRCSpec_PWR-0201",
      "fretish": "When OP_MODE DRC shall always satisfy (Heatup | Load_Follow) & !(!Heatup & !Load_Follow) & !(SCRAM | Cold_Shutdown)",
      "ltl": "G((OP_MODE) -> X(G((Heatup | Load_Follow) & !(!Heatup & !Load_Follow) & !(SCRAM | Cold_Shutdown))))"
    },
    {
      "req_id": "DRCSpec_PWR-0202",
      "fretish": "While !OP_MODE DRC shall always satisfy (Heatup | Load_Follow)",
      "ltl": "G((!OP_MODE) -> ((Heatup | Load_Follow)))"
    },
    {
      "req_id": "DRCSpec_PWR-2001",
      "fretish": "While !SCRAM If Cold_Shutdown & STARTUP DRC shall at the next timepoint satisfy OP_MODE & Heatup",
      "ltl": "G(((!SCRAM) & (Cold_Shutdown & STARTUP)) -> X(OP_MODE & Heatup))"
    },
    {
      "req_id": "DRCSpec_PWR-3001",
      "fretish": "While Heatup if t_dot_exceeded DRC shall at the next timepoint satisfy SCRAM",
      "ltl": "G(((Heatup) & (t_dot_exceeded)) -> X(SCRAM))"
    },
    {
      "req_id": "DRCSpec_PWR-3002",
      "fretish": "if t_max_exceeded DRC shall at the next timepoint satisfy SCRAM",
      "ltl": "G((t_max_exceeded) -> X(SCRAM))"
    },
    {
      "req_id": "DRCSpec_PWR-3003",
      "fretish": "While Heatup if t_power_min DRC shall at the next timepoint satisfy (Load_Follow & !Heatup)",
      "ltl": "G(((Heatup) & (t_power_min)) -> X((Load_Follow & !Heatup)))"
    }
  ]
}
