{ "jani-version":1, "features":[ "derived-operators" ], "name":"Converted from PRISM by IscasMC", "type":"mdp", "actions":[ { "name":"send1" }, { "name":"send2" }, { "name":"end1" }, { "name":"end2" }, { "name":"busy1" }, { "name":"busy2" }, { "name":"cd" }, { "name":"time" }, { "name":"tau__" } ], "variables":[ { "name":"b", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":2 } }, { "name":"y1", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":{ "op":"+", "left":1, "right":1 } } }, { "name":"y2", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":{ "op":"+", "left":1, "right":1 } } }, { "name":"s1", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":5 } }, { "name":"x1", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":{ "op":"max", "left":30, "right":{ "op":"*", "left":2, "right":1 } } } }, { "name":"bc1", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":{ "op":"-", "left":{ "op":"⌊⌋", "exp":{ "op":"pow", "left":2, "right":2 } }, "right":1 } } }, { "name":"cd1", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":2 } }, { "name":"s2", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":5 } }, { "name":"x2", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":{ "op":"max", "left":30, "right":{ "op":"*", "left":2, "right":1 } } } }, { "name":"bc2", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":{ "op":"-", "left":{ "op":"⌊⌋", "exp":{ "op":"pow", "left":2, "right":2 } }, "right":1 } } }, { "name":"cd2", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":2 } } ], "observables":[ { "name":"\"time\"" } ], "initial-states":{ "exp":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"=", "left":"b", "right":0 }, "right":{ "op":"=", "left":"y1", "right":0 } }, "right":{ "op":"=", "left":"y2", "right":0 } }, "right":{ "op":"=", "left":"s1", "right":0 } }, "right":{ "op":"=", "left":"x1", "right":0 } }, "right":{ "op":"=", "left":"bc1", "right":0 } }, "right":{ "op":"=", "left":"cd1", "right":0 } }, "right":{ "op":"=", "left":"s2", "right":0 } }, "right":{ "op":"=", "left":"x2", "right":0 } }, "right":{ "op":"=", "left":"bc2", "right":0 } }, "right":{ "op":"=", "left":"cd2", "right":0 } } }, "automata":[ { "name":"bus", "locations":[ { "name":"location" } ], "initial-locations":[ "location" ], "edges":[ { "location":"location", "action":"send1", "guard":{ "exp":{ "op":"=", "left":"b", "right":0 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":1 } ], "observables":[ ] } ] }, { "location":"location", "action":"send2", "guard":{ "exp":{ "op":"=", "left":"b", "right":0 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":1 } ], "observables":[ ] } ] }, { "location":"location", "action":"send1", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∨", "left":{ "op":"=", "left":"b", "right":1 }, "right":{ "op":"=", "left":"b", "right":2 } }, "right":{ "op":"<", "left":"y1", "right":1 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":2 } ], "observables":[ ] } ] }, { "location":"location", "action":"send2", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∨", "left":{ "op":"=", "left":"b", "right":1 }, "right":{ "op":"=", "left":"b", "right":2 } }, "right":{ "op":"<", "left":"y1", "right":1 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":2 } ], "observables":[ ] } ] }, { "location":"location", "action":"end1", "guard":{ "exp":{ "op":"=", "left":"b", "right":1 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":0 }, { "ref":"y1", "value":0 } ], "observables":[ ] } ] }, { "location":"location", "action":"end2", "guard":{ "exp":{ "op":"=", "left":"b", "right":1 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":0 }, { "ref":"y1", "value":0 } ], "observables":[ ] } ] }, { "location":"location", "action":"busy1", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∨", "left":{ "op":"=", "left":"b", "right":1 }, "right":{ "op":"=", "left":"b", "right":2 } }, "right":{ "op":"≥", "left":"y1", "right":1 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":"b" } ], "observables":[ ] } ] }, { "location":"location", "action":"busy2", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∨", "left":{ "op":"=", "left":"b", "right":1 }, "right":{ "op":"=", "left":"b", "right":2 } }, "right":{ "op":"≥", "left":"y1", "right":1 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":"b" } ], "observables":[ ] } ] }, { "location":"location", "action":"cd", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"b", "right":2 }, "right":{ "op":"≤", "left":"y2", "right":1 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"b", "value":0 }, { "ref":"y1", "value":0 }, { "ref":"y2", "value":0 } ], "observables":[ ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"=", "left":"b", "right":0 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"y1", "value":0 } ], "observables":[ { "ref":"\"time\"", "value":1 } ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"=", "left":"b", "right":1 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"y1", "value":{ "op":"min", "left":{ "op":"+", "left":"y1", "right":1 }, "right":{ "op":"+", "left":1, "right":1 } } } ], "observables":[ { "ref":"\"time\"", "value":1 } ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"b", "right":2 }, "right":{ "op":"<", "left":"y2", "right":1 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"y1", "value":{ "op":"min", "left":{ "op":"+", "left":"y1", "right":1 }, "right":{ "op":"+", "left":1, "right":1 } } }, { "ref":"y2", "value":{ "op":"min", "left":{ "op":"+", "left":"y2", "right":1 }, "right":{ "op":"+", "left":1, "right":1 } } } ], "observables":[ { "ref":"\"time\"", "value":1 } ] } ] } ] }, { "name":"station1", "locations":[ { "name":"location" } ], "initial-locations":[ "location" ], "edges":[ { "location":"location", "action":"send1", "guard":{ "exp":{ "op":"=", "left":"s1", "right":0 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s1", "value":1 }, { "ref":"x1", "value":0 } ] } ] }, { "location":"location", "action":"busy1", "guard":{ "exp":{ "op":"=", "left":"s1", "right":0 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s1", "value":2 }, { "ref":"x1", "value":0 }, { "ref":"cd1", "value":{ "op":"min", "left":2, "right":{ "op":"+", "left":"cd1", "right":1 } } } ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s1", "right":1 }, "right":{ "op":"<", "left":"x1", "right":30 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"x1", "value":{ "op":"min", "left":{ "op":"+", "left":"x1", "right":1 }, "right":30 } } ] } ] }, { "location":"location", "action":"end1", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s1", "right":1 }, "right":{ "op":"=", "left":"x1", "right":30 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s1", "value":4 }, { "ref":"x1", "value":0 } ] } ] }, { "location":"location", "action":"cd", "guard":{ "exp":{ "op":"=", "left":"s1", "right":1 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s1", "value":2 }, { "ref":"x1", "value":0 }, { "ref":"cd1", "value":{ "op":"min", "left":2, "right":{ "op":"+", "left":"cd1", "right":1 } } } ] } ] }, { "location":"location", "action":"cd", "guard":{ "exp":{ "op":"¬", "exp":{ "op":"=", "left":"s1", "right":1 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s1", "value":"s1" } ] } ] }, { "location":"location", "action":"tau__", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s1", "right":2 }, "right":{ "op":"=", "left":"cd1", "right":1 } } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":1, "right":2 } }, "location":"location", "assignments":[ { "ref":"s1", "value":3 }, { "ref":"bc1", "value":0 } ], "observables":[ ] }, { "probability":{ "exp":{ "op":"/", "left":1, "right":2 } }, "location":"location", "assignments":[ { "ref":"s1", "value":3 }, { "ref":"bc1", "value":1 } ], "observables":[ ] } ] }, { "location":"location", "action":"tau__", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s1", "right":2 }, "right":{ "op":"=", "left":"cd1", "right":2 } } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":1, "right":4 } }, "location":"location", "assignments":[ { "ref":"s1", "value":3 }, { "ref":"bc1", "value":0 } ], "observables":[ ] }, { "probability":{ "exp":{ "op":"/", "left":1, "right":4 } }, "location":"location", "assignments":[ { "ref":"s1", "value":3 }, { "ref":"bc1", "value":1 } ], "observables":[ ] }, { "probability":{ "exp":{ "op":"/", "left":1, "right":4 } }, "location":"location", "assignments":[ { "ref":"s1", "value":3 }, { "ref":"bc1", "value":2 } ], "observables":[ ] }, { "probability":{ "exp":{ "op":"/", "left":1, "right":4 } }, "location":"location", "assignments":[ { "ref":"s1", "value":3 }, { "ref":"bc1", "value":3 } ], "observables":[ ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s1", "right":3 }, "right":{ "op":"<", "left":"x1", "right":{ "op":"*", "left":2, "right":1 } } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"x1", "value":{ "op":"+", "left":"x1", "right":1 } } ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"=", "left":"s1", "right":3 }, "right":{ "op":"=", "left":"x1", "right":{ "op":"*", "left":2, "right":1 } } }, "right":{ "op":">", "left":"bc1", "right":0 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"x1", "value":1 }, { "ref":"bc1", "value":{ "op":"-", "left":"bc1", "right":1 } } ] } ] }, { "location":"location", "action":"send1", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"=", "left":"s1", "right":3 }, "right":{ "op":"=", "left":"x1", "right":{ "op":"*", "left":2, "right":1 } } }, "right":{ "op":"=", "left":"bc1", "right":0 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s1", "value":1 }, { "ref":"x1", "value":0 } ] } ] }, { "location":"location", "action":"busy1", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"=", "left":"s1", "right":3 }, "right":{ "op":"=", "left":"x1", "right":{ "op":"*", "left":2, "right":1 } } }, "right":{ "op":"=", "left":"bc1", "right":0 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s1", "value":2 }, { "ref":"x1", "value":0 }, { "ref":"cd1", "value":{ "op":"min", "left":2, "right":{ "op":"+", "left":"cd1", "right":1 } } } ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"≥", "left":"s1", "right":4 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"x1", "value":0 } ] } ] } ] }, { "name":"station2", "locations":[ { "name":"location" } ], "initial-locations":[ "location" ], "edges":[ { "location":"location", "action":"send2", "guard":{ "exp":{ "op":"=", "left":"s2", "right":0 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s2", "value":1 }, { "ref":"x2", "value":0 } ] } ] }, { "location":"location", "action":"busy2", "guard":{ "exp":{ "op":"=", "left":"s2", "right":0 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s2", "value":2 }, { "ref":"x2", "value":0 }, { "ref":"cd2", "value":{ "op":"min", "left":2, "right":{ "op":"+", "left":"cd2", "right":1 } } } ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s2", "right":1 }, "right":{ "op":"<", "left":"x2", "right":30 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"x2", "value":{ "op":"min", "left":{ "op":"+", "left":"x2", "right":1 }, "right":30 } } ] } ] }, { "location":"location", "action":"end2", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s2", "right":1 }, "right":{ "op":"=", "left":"x2", "right":30 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s2", "value":4 }, { "ref":"x2", "value":0 } ] } ] }, { "location":"location", "action":"cd", "guard":{ "exp":{ "op":"=", "left":"s2", "right":1 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s2", "value":2 }, { "ref":"x2", "value":0 }, { "ref":"cd2", "value":{ "op":"min", "left":2, "right":{ "op":"+", "left":"cd2", "right":1 } } } ] } ] }, { "location":"location", "action":"cd", "guard":{ "exp":{ "op":"¬", "exp":{ "op":"=", "left":"s2", "right":1 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s2", "value":"s2" } ] } ] }, { "location":"location", "action":"tau__", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s2", "right":2 }, "right":{ "op":"=", "left":"cd2", "right":1 } } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":1, "right":2 } }, "location":"location", "assignments":[ { "ref":"s2", "value":3 }, { "ref":"bc2", "value":0 } ], "observables":[ ] }, { "probability":{ "exp":{ "op":"/", "left":1, "right":2 } }, "location":"location", "assignments":[ { "ref":"s2", "value":3 }, { "ref":"bc2", "value":1 } ], "observables":[ ] } ] }, { "location":"location", "action":"tau__", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s2", "right":2 }, "right":{ "op":"=", "left":"cd2", "right":2 } } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":1, "right":4 } }, "location":"location", "assignments":[ { "ref":"s2", "value":3 }, { "ref":"bc2", "value":0 } ], "observables":[ ] }, { "probability":{ "exp":{ "op":"/", "left":1, "right":4 } }, "location":"location", "assignments":[ { "ref":"s2", "value":3 }, { "ref":"bc2", "value":1 } ], "observables":[ ] }, { "probability":{ "exp":{ "op":"/", "left":1, "right":4 } }, "location":"location", "assignments":[ { "ref":"s2", "value":3 }, { "ref":"bc2", "value":2 } ], "observables":[ ] }, { "probability":{ "exp":{ "op":"/", "left":1, "right":4 } }, "location":"location", "assignments":[ { "ref":"s2", "value":3 }, { "ref":"bc2", "value":3 } ], "observables":[ ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"∧", "left":{ "op":"=", "left":"s2", "right":3 }, "right":{ "op":"<", "left":"x2", "right":{ "op":"*", "left":2, "right":1 } } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"x2", "value":{ "op":"+", "left":"x2", "right":1 } } ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"=", "left":"s2", "right":3 }, "right":{ "op":"=", "left":"x2", "right":{ "op":"*", "left":2, "right":1 } } }, "right":{ "op":">", "left":"bc2", "right":0 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"x2", "value":1 }, { "ref":"bc2", "value":{ "op":"-", "left":"bc2", "right":1 } } ] } ] }, { "location":"location", "action":"send2", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"=", "left":"s2", "right":3 }, "right":{ "op":"=", "left":"x2", "right":{ "op":"*", "left":2, "right":1 } } }, "right":{ "op":"=", "left":"bc2", "right":0 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s2", "value":1 }, { "ref":"x2", "value":0 } ] } ] }, { "location":"location", "action":"busy2", "guard":{ "exp":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"=", "left":"s2", "right":3 }, "right":{ "op":"=", "left":"x2", "right":{ "op":"*", "left":2, "right":1 } } }, "right":{ "op":"=", "left":"bc2", "right":0 } } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"s2", "value":2 }, { "ref":"x2", "value":0 }, { "ref":"cd2", "value":{ "op":"min", "left":2, "right":{ "op":"+", "left":"cd2", "right":1 } } } ] } ] }, { "location":"location", "action":"time", "guard":{ "exp":{ "op":"≥", "left":"s2", "right":4 } }, "destinations":[ { "probability":{ "exp":1 }, "location":"location", "assignments":[ { "ref":"x2", "value":0 } ] } ] } ] } ], "system":{ "elements":[ { "automaton":"bus" }, { "automaton":"station1" }, { "automaton":"station2" } ], "syncs":[ { "synchronise":[ "cd", "cd", "cd" ], "result":"cd" }, { "synchronise":[ "time", "time", "time" ], "result":"time" }, { "synchronise":[ "send2", null, "send2" ], "result":"send2" }, { "synchronise":[ "end2", null, "end2" ], "result":"end2" }, { "synchronise":[ "busy2", null, "busy2" ], "result":"busy2" }, { "synchronise":[ "send1", "send1", null ], "result":"send1" }, { "synchronise":[ "end1", "end1", null ], "result":"end1" }, { "synchronise":[ "busy1", "busy1", null ], "result":"busy1" }, { "synchronise":[ null, "tau__", null ], "result":"tau__" }, { "synchronise":[ null, null, "tau__" ], "result":"tau__" } ] } }