{
  "jani-version": 1,
  "name": "Noodles/NoodlesCooking.imi",
  "type": "sha",
  "features": [
    "derived-operators"
  ],
  "actions": [
    {
      "name": "startTimer"
    },
    {
      "name": "ring"
    },
    {
      "name": "boilover"
    },
    {
      "name": "miam"
    }
  ],
  "variables": [
    {
      "name": "xPot",
      "type": "clock",
      "initial_value": 0
    },
    {
      "name": "xTimer",
      "type": "clock",
      "initial_value": 0
    },
    {
      "name": "dPot",
      "type": "real"
    },
    {
      "name": "dTimer",
      "type": "real"
    }
  ],
  "properties": [],
  "automata": [
    {
      "name": "system",
      "locations": [
        {
          "name": "heating",
          "time-progress": {
            "exp": {
              "op": ">",
              "left": "dPot",
              "right": "xPot"
            }
          }
        },
        {
          "name": "ticking",
          "time-progress": {
            "exp": {
              "op": "∧",
              "left": {
                "op": ">",
                "left": "dPot",
                "right": "xPot"
              },
              "right": {
                "op": ">",
                "left": "dTimer",
                "right": "xTimer"
              }
            }
          }
        },
        {
          "name": "cooked",
          "time-progress": {
            "exp": {
              "op": ">",
              "left": "dPot",
              "right": "xPot"
            }
          }
        },
        {
          "name": "eating"
        },
        {
          "name": "catastrophe"
        }
      ],
      "initial_locations": [
        "heating"
      ],
      "edges": [
        {
          "location": "heating",
          "destinations": [
            {
              "location": "ticking",
              "assignments": [
                {
                  "ref": "xTimer",
                  "value": 0
                }
              ]
            }
          ]
        },
        {
          "location": "heating",
          "guard": {
            "op": "=",
            "left": "dPot",
            "right": "xPot"
          },
          "destinations": [
            {
              "location": "catastrophe"
            }
          ]
        },
        {
          "location": "ticking",
          "guard": {
            "op": "=",
            "left": "dTimer",
            "right": "xTimer"
          },
          "destinations": [
            {
              "location": "cooked"
            }
          ]
        },
        {
          "location": "ticking",
          "guard": {
            "op": "=",
            "left": "dPot",
            "right": "xPot"
          },
          "destinations": [
            {
              "location": "catastrophe"
            }
          ]
        },
        {
          "location": "cooked",
          "guard": {
            "op": "=",
            "left": "dPot",
            "right": "xPot"
          },
          "destinations": [
            {
              "location": "eating"
            }
          ]
        }
      ]
    }
  ],
  "system": {
    "elements": [
      {
        "automaton": "system"
      }
    ],
    "syncs": [
      {
        "synchronise": [
          "startTimer"
        ],
        "result": "startTimer"
      },
      {
        "synchronise": [
          "ring"
        ],
        "result": "ring"
      },
      {
        "synchronise": [
          "boilover"
        ],
        "result": "boilover"
      },
      {
        "synchronise": [
          "miam"
        ],
        "result": "miam"
      }
    ]
  }
}
