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