You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

722 lines
24 KiB

{
"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"
}
]
}
}