{ "jani-version":1, "features":[ "derived-operators" ], "name":"Converted from PRISM by IscasMC", "type":"ctmc", "actions":[ { "name":"e1" }, { "name":"e2" }, { "name":"e3" }, { "name":"e4" } ], "constants":[ { "name":"N1", "type":"int" }, { "name":"N2", "type":"int" } ], "variables":[ { "name":"cl", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":"N2" } }, { "name":"mg", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":"N1" } }, { "name":"mg_p", "type":{ "kind":"bounded", "base":"int", "lower-bound":0, "upper-bound":"N1" } }, { "name":"dummy", "type":"bool" } ], "observables":[ { "name":"\"percentage_mg\"" }, { "name":"\"percentage_mgplus\"" }, { "name":"\"percentage_mgplus2\"" } ], "initial-states":{ "exp":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"∧", "left":{ "op":"=", "left":"cl", "right":"N2" }, "right":{ "op":"=", "left":"mg", "right":"N1" } }, "right":{ "op":"=", "left":"mg_p", "right":0 } }, "right":{ "op":"=", "left":"dummy", "right":false } } }, "automata":[ { "name":"cl", "locations":[ { "name":"location", "observables":[ { "ref":"\"percentage_mg\"", "value":{ "op":"/", "left":{ "op":"*", "left":100, "right":"mg" }, "right":"N1" } }, { "ref":"\"percentage_mgplus\"", "value":{ "op":"/", "left":{ "op":"*", "left":100, "right":"mg_p" }, "right":"N1" } }, { "ref":"\"percentage_mgplus2\"", "value":{ "op":"max", "left":{ "op":"/", "left":{ "op":"*", "left":100, "right":{ "op":"-", "left":"N1", "right":{ "op":"+", "left":"mg_p", "right":"mg" } } }, "right":"N1" }, "right":0 } } ] } ], "initial-locations":[ "location" ], "edges":[ { "location":"location", "action":"e1", "rate":{ "exp":"cl" }, "guard":{ "exp":{ "op":">", "left":"cl", "right":0 } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":"cl", "right":"cl" } }, "location":"location", "assignments":[ { "ref":"cl", "value":{ "op":"-", "left":"cl", "right":1 } } ], "observables":[ ] } ] }, { "location":"location", "action":"e2", "rate":{ "exp":"cl" }, "guard":{ "exp":{ "op":">", "left":"cl", "right":0 } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":"cl", "right":"cl" } }, "location":"location", "assignments":[ { "ref":"cl", "value":{ "op":"-", "left":"cl", "right":1 } } ], "observables":[ ] } ] }, { "location":"location", "action":"e3", "rate":{ "exp":{ "op":"-", "left":"N2", "right":"cl" } }, "guard":{ "exp":{ "op":"<", "left":"cl", "right":"N2" } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":{ "op":"-", "left":"N2", "right":"cl" }, "right":{ "op":"-", "left":"N2", "right":"cl" } } }, "location":"location", "assignments":[ { "ref":"cl", "value":{ "op":"+", "left":"cl", "right":1 } } ], "observables":[ ] } ] }, { "location":"location", "action":"e4", "rate":{ "exp":{ "op":"-", "left":"N2", "right":"cl" } }, "guard":{ "exp":{ "op":"<", "left":"cl", "right":"N2" } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":{ "op":"-", "left":"N2", "right":"cl" }, "right":{ "op":"-", "left":"N2", "right":"cl" } } }, "location":"location", "assignments":[ { "ref":"cl", "value":{ "op":"+", "left":"cl", "right":1 } } ], "observables":[ ] } ] } ] }, { "name":"mg", "locations":[ { "name":"location" } ], "initial-locations":[ "location" ], "edges":[ { "location":"location", "action":"e1", "rate":{ "exp":"mg" }, "guard":{ "exp":{ "op":"∧", "left":{ "op":">", "left":"mg", "right":0 }, "right":{ "op":"<", "left":"mg_p", "right":"N1" } } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":"mg", "right":"mg" } }, "location":"location", "assignments":[ { "ref":"mg", "value":{ "op":"-", "left":"mg", "right":1 } }, { "ref":"mg_p", "value":{ "op":"+", "left":"mg_p", "right":1 } } ] } ] }, { "location":"location", "action":"e2", "rate":{ "exp":"mg_p" }, "guard":{ "exp":{ "op":">", "left":"mg_p", "right":0 } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":"mg_p", "right":"mg_p" } }, "location":"location", "assignments":[ { "ref":"mg_p", "value":{ "op":"-", "left":"mg_p", "right":1 } } ] } ] }, { "location":"location", "action":"e3", "rate":{ "exp":"mg_p" }, "guard":{ "exp":{ "op":"∧", "left":{ "op":">", "left":"mg_p", "right":0 }, "right":{ "op":"<", "left":"mg", "right":"N1" } } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":"mg_p", "right":"mg_p" } }, "location":"location", "assignments":[ { "ref":"mg", "value":{ "op":"+", "left":"mg", "right":1 } }, { "ref":"mg_p", "value":{ "op":"-", "left":"mg_p", "right":1 } } ] } ] }, { "location":"location", "action":"e4", "rate":{ "exp":{ "op":"-", "left":"N1", "right":{ "op":"+", "left":"mg_p", "right":"mg" } } }, "guard":{ "exp":{ "op":"<", "left":{ "op":"+", "left":"mg_p", "right":"mg" }, "right":"N1" } }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":{ "op":"-", "left":"N1", "right":{ "op":"+", "left":"mg_p", "right":"mg" } }, "right":{ "op":"-", "left":"N1", "right":{ "op":"+", "left":"mg_p", "right":"mg" } } } }, "location":"location", "assignments":[ { "ref":"mg_p", "value":{ "op":"+", "left":"mg_p", "right":1 } } ] } ] } ] }, { "name":"base_rates", "locations":[ { "name":"location" } ], "initial-locations":[ "location" ], "edges":[ { "location":"location", "action":"e1", "rate":{ "exp":10 }, "guard":{ "exp":true }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":10, "right":10 } }, "location":"location", "assignments":[ ] } ] }, { "location":"location", "action":"e2", "rate":{ "exp":100 }, "guard":{ "exp":true }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":100, "right":100 } }, "location":"location", "assignments":[ ] } ] }, { "location":"location", "action":"e3", "rate":{ "exp":50 }, "guard":{ "exp":true }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":50, "right":50 } }, "location":"location", "assignments":[ ] } ] }, { "location":"location", "action":"e4", "rate":{ "exp":5 }, "guard":{ "exp":true }, "destinations":[ { "probability":{ "exp":{ "op":"/", "left":5, "right":5 } }, "location":"location", "assignments":[ ] } ] } ] } ], "system":{ "elements":[ { "automaton":"cl" }, { "automaton":"mg" }, { "automaton":"base_rates" } ], "syncs":[ { "synchronise":[ "e1", "e1", "e1" ], "result":"e1" }, { "synchronise":[ "e2", "e2", "e2" ], "result":"e2" }, { "synchronise":[ "e3", "e3", "e3" ], "result":"e3" }, { "synchronise":[ "e4", "e4", "e4" ], "result":"e4" } ] } }