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.
 
 
 
 

1755 lines
72 KiB

{
"jani-version":1,
"features":[
"derived-operators"
],
"name":"Converted from PRISM by IscasMC",
"type":"ctmc",
"actions":[
{
"name":"tau__"
},
{
"name":"input_reboot"
},
{
"name":"timeout"
},
{
"name":"output_reboot"
}
],
"constants":[
{
"name":"MAX_COUNT",
"type":"int"
}
],
"variables":[
{
"name":"s",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":3
}
},
{
"name":"i",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":2
}
},
{
"name":"a",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":2
}
},
{
"name":"m",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":1
}
},
{
"name":"count",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":{
"op":"+",
"left":"MAX_COUNT",
"right":1
}
}
},
{
"name":"comp",
"type":"bool"
},
{
"name":"reqi",
"type":"bool"
},
{
"name":"reqo",
"type":"bool"
},
{
"name":"o",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":2
}
}
],
"observables":[
{
"name":"\"up\""
},
{
"name":"\"danger\""
},
{
"name":"\"down\""
}
],
"initial-states":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"s",
"right":3
},
"right":{
"op":"=",
"left":"i",
"right":2
}
},
"right":{
"op":"=",
"left":"a",
"right":2
}
},
"right":{
"op":"=",
"left":"m",
"right":1
}
},
"right":{
"op":"=",
"left":"count",
"right":0
}
},
"right":{
"op":"=",
"left":"comp",
"right":true
}
},
"right":{
"op":"=",
"left":"reqi",
"right":true
}
},
"right":{
"op":"=",
"left":"reqo",
"right":false
}
},
"right":{
"op":"=",
"left":"o",
"right":2
}
}
},
"automata":[
{
"name":"sensors",
"locations":[
{
"name":"location",
"observables":[
{
"ref":"\"up\"",
"value":{
"op":"?:",
"args":[
{
"op":"∧",
"left":{
"op":"¬",
"exp":{
"op":"∨",
"left":{
"op":"∨",
"left":{
"op":"∨",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"i",
"right":2
},
"right":{
"op":"<",
"left":"s",
"right":2
}
},
"right":{
"op":"=",
"left":"count",
"right":{
"op":"+",
"left":"MAX_COUNT",
"right":1
}
}
},
"right":{
"op":"∧",
"left":{
"op":"=",
"left":"o",
"right":2
},
"right":{
"op":"<",
"left":"a",
"right":1
}
}
},
"right":{
"op":"=",
"left":"m",
"right":0
}
}
},
"right":{
"op":"¬",
"exp":{
"op":"∧",
"left":{
"op":"¬",
"exp":{
"op":"∨",
"left":{
"op":"∨",
"left":{
"op":"∨",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"i",
"right":2
},
"right":{
"op":"<",
"left":"s",
"right":2
}
},
"right":{
"op":"=",
"left":"count",
"right":{
"op":"+",
"left":"MAX_COUNT",
"right":1
}
}
},
"right":{
"op":"∧",
"left":{
"op":"=",
"left":"o",
"right":2
},
"right":{
"op":"<",
"left":"a",
"right":1
}
}
},
"right":{
"op":"=",
"left":"m",
"right":0
}
}
},
"right":{
"op":"∨",
"left":{
"op":"=",
"left":"i",
"right":1
},
"right":{
"op":"=",
"left":"o",
"right":1
}
}
}
}
},
{
"op":"/",
"left":1,
"right":3600
},
0
]
}
},
{
"ref":"\"danger\"",
"value":{
"op":"?:",
"args":[
{
"op":"∧",
"left":{
"op":"¬",
"exp":{
"op":"∨",
"left":{
"op":"∨",
"left":{
"op":"∨",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"i",
"right":2
},
"right":{
"op":"<",
"left":"s",
"right":2
}
},
"right":{
"op":"=",
"left":"count",
"right":{
"op":"+",
"left":"MAX_COUNT",
"right":1
}
}
},
"right":{
"op":"∧",
"left":{
"op":"=",
"left":"o",
"right":2
},
"right":{
"op":"<",
"left":"a",
"right":1
}
}
},
"right":{
"op":"=",
"left":"m",
"right":0
}
}
},
"right":{
"op":"∨",
"left":{
"op":"=",
"left":"i",
"right":1
},
"right":{
"op":"=",
"left":"o",
"right":1
}
}
},
{
"op":"/",
"left":1,
"right":3600
},
0
]
}
},
{
"ref":"\"down\"",
"value":{
"op":"?:",
"args":[
{
"op":"∨",
"left":{
"op":"∨",
"left":{
"op":"∨",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"i",
"right":2
},
"right":{
"op":"<",
"left":"s",
"right":2
}
},
"right":{
"op":"=",
"left":"count",
"right":{
"op":"+",
"left":"MAX_COUNT",
"right":1
}
}
},
"right":{
"op":"∧",
"left":{
"op":"=",
"left":"o",
"right":2
},
"right":{
"op":"<",
"left":"a",
"right":1
}
}
},
"right":{
"op":"=",
"left":"m",
"right":0
}
},
{
"op":"/",
"left":1,
"right":3600
},
0
]
}
}
]
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"tau__",
"rate":{
"exp":{
"op":"*",
"left":"s",
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":30,
"right":24
},
"right":60
},
"right":60
}
}
}
},
"guard":{
"exp":{
"op":">",
"left":"s",
"right":1
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"*",
"left":"s",
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":30,
"right":24
},
"right":60
},
"right":60
}
}
},
"right":{
"op":"*",
"left":"s",
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":30,
"right":24
},
"right":60
},
"right":60
}
}
}
}
},
"location":"location",
"assignments":[
{
"ref":"s",
"value":{
"op":"-",
"left":"s",
"right":1
}
}
],
"observables":[
]
}
]
}
]
},
{
"name":"proci",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"tau__",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
}
},
"guard":{
"exp":{
"op":"∧",
"left":{
"op":">",
"left":"i",
"right":0
},
"right":{
"op":"≥",
"left":"s",
"right":2
}
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
},
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
}
}
},
"location":"location",
"assignments":[
{
"ref":"i",
"value":0
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"tau__",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":24,
"right":60
},
"right":60
}
}
},
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"=",
"left":"i",
"right":2
},
"right":{
"op":"≥",
"left":"s",
"right":2
}
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":24,
"right":60
},
"right":60
}
},
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":24,
"right":60
},
"right":60
}
}
}
},
"location":"location",
"assignments":[
{
"ref":"i",
"value":1
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"input_reboot",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":30
}
},
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"=",
"left":"i",
"right":1
},
"right":{
"op":"≥",
"left":"s",
"right":2
}
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":30
},
"right":{
"op":"/",
"left":1,
"right":30
}
}
},
"location":"location",
"assignments":[
{
"ref":"i",
"value":2
}
],
"observables":[
]
}
]
}
]
},
{
"name":"actuators",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"tau__",
"rate":{
"exp":{
"op":"*",
"left":"a",
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":2,
"right":30
},
"right":24
},
"right":60
},
"right":60
}
}
}
},
"guard":{
"exp":{
"op":">",
"left":"a",
"right":0
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"*",
"left":"a",
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":2,
"right":30
},
"right":24
},
"right":60
},
"right":60
}
}
},
"right":{
"op":"*",
"left":"a",
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":2,
"right":30
},
"right":24
},
"right":60
},
"right":60
}
}
}
}
},
"location":"location",
"assignments":[
{
"ref":"a",
"value":{
"op":"-",
"left":"a",
"right":1
}
}
],
"observables":[
]
}
]
}
]
},
{
"name":"procm",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"tau__",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
}
},
"guard":{
"exp":{
"op":"=",
"left":"m",
"right":1
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
},
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
}
}
},
"location":"location",
"assignments":[
{
"ref":"m",
"value":0
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"timeout",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":60
}
},
"guard":{
"exp":"comp"
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":60
},
"right":{
"op":"/",
"left":1,
"right":60
}
}
},
"location":"location",
"assignments":[
{
"ref":"count",
"value":0
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"timeout",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":60
}
},
"guard":{
"exp":{
"op":"¬",
"exp":"comp"
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":60
},
"right":{
"op":"/",
"left":1,
"right":60
}
}
},
"location":"location",
"assignments":[
{
"ref":"count",
"value":{
"op":"min",
"left":{
"op":"+",
"left":"count",
"right":1
},
"right":{
"op":"+",
"left":"MAX_COUNT",
"right":1
}
}
}
],
"observables":[
]
}
]
}
]
},
{
"name":"bus",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"input_reboot",
"rate":{
"exp":1
},
"guard":{
"exp":true
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":1,
"right":1
}
},
"location":"location",
"assignments":[
{
"ref":"comp",
"value":{
"op":"∨",
"left":"comp",
"right":{
"op":"∧",
"left":{
"op":"=",
"left":"m",
"right":1
},
"right":{
"op":"¬",
"exp":"reqo"
}
}
}
},
{
"ref":"reqi",
"value":true
},
{
"ref":"reqo",
"value":{
"op":"∧",
"left":{
"op":"¬",
"exp":{
"op":"∧",
"left":{
"op":"=",
"left":"o",
"right":2
},
"right":{
"op":"≥",
"left":"a",
"right":1
}
}
},
"right":{
"op":"∨",
"left":"reqo",
"right":{
"op":"=",
"left":"m",
"right":1
}
}
}
}
]
}
]
},
{
"location":"location",
"action":"output_reboot",
"rate":{
"exp":1
},
"guard":{
"exp":true
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":1,
"right":1
}
},
"location":"location",
"assignments":[
{
"ref":"comp",
"value":{
"op":"∨",
"left":"comp",
"right":{
"op":"∧",
"left":"reqi",
"right":{
"op":"=",
"left":"m",
"right":1
}
}
}
},
{
"ref":"reqi",
"value":{
"op":"∨",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"i",
"right":2
},
"right":{
"op":"≥",
"left":"s",
"right":2
}
},
"right":{
"op":"∧",
"left":"reqi",
"right":{
"op":"=",
"left":"m",
"right":0
}
}
}
},
{
"ref":"reqo",
"value":false
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"timeout",
"rate":{
"exp":1
},
"guard":{
"exp":true
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":1,
"right":1
}
},
"location":"location",
"assignments":[
{
"ref":"comp",
"value":{
"op":"∧",
"left":{
"op":"∧",
"left":"reqi",
"right":{
"op":"¬",
"exp":"reqo"
}
},
"right":{
"op":"=",
"left":"m",
"right":1
}
}
},
{
"ref":"reqi",
"value":{
"op":"∨",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"i",
"right":2
},
"right":{
"op":"≥",
"left":"s",
"right":2
}
},
"right":{
"op":"∧",
"left":"reqi",
"right":{
"op":"∨",
"left":"reqo",
"right":{
"op":"=",
"left":"m",
"right":0
}
}
}
}
},
{
"ref":"reqo",
"value":{
"op":"∧",
"left":{
"op":"¬",
"exp":{
"op":"∧",
"left":{
"op":"=",
"left":"o",
"right":2
},
"right":{
"op":"≥",
"left":"a",
"right":1
}
}
},
"right":{
"op":"∨",
"left":"reqo",
"right":{
"op":"∧",
"left":"reqi",
"right":{
"op":"=",
"left":"m",
"right":1
}
}
}
}
}
]
}
]
}
]
},
{
"name":"proco",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"tau__",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
}
},
"guard":{
"exp":{
"op":"∧",
"left":{
"op":">",
"left":"o",
"right":0
},
"right":{
"op":"≥",
"left":"a",
"right":1
}
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
},
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":{
"op":"*",
"left":365,
"right":24
},
"right":60
},
"right":60
}
}
}
},
"location":"location",
"assignments":[
{
"ref":"o",
"value":0
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"tau__",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":24,
"right":60
},
"right":60
}
}
},
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"=",
"left":"o",
"right":2
},
"right":{
"op":"≥",
"left":"a",
"right":1
}
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":24,
"right":60
},
"right":60
}
},
"right":{
"op":"/",
"left":1,
"right":{
"op":"*",
"left":{
"op":"*",
"left":24,
"right":60
},
"right":60
}
}
}
},
"location":"location",
"assignments":[
{
"ref":"o",
"value":1
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"output_reboot",
"rate":{
"exp":{
"op":"/",
"left":1,
"right":30
}
},
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"=",
"left":"o",
"right":1
},
"right":{
"op":"≥",
"left":"a",
"right":1
}
}
},
"destinations":[
{
"probability":{
"exp":{
"op":"/",
"left":{
"op":"/",
"left":1,
"right":30
},
"right":{
"op":"/",
"left":1,
"right":30
}
}
},
"location":"location",
"assignments":[
{
"ref":"o",
"value":2
}
]
}
]
}
]
}
],
"system":{
"elements":[
{
"automaton":"sensors"
},
{
"automaton":"proci"
},
{
"automaton":"actuators"
},
{
"automaton":"procm"
},
{
"automaton":"bus"
},
{
"automaton":"proco"
}
],
"syncs":[
{
"synchronise":[
null,
null,
null,
null,
"output_reboot",
"output_reboot"
],
"result":"output_reboot"
},
{
"synchronise":[
null,
"input_reboot",
null,
null,
"input_reboot",
null
],
"result":"input_reboot"
},
{
"synchronise":[
null,
null,
null,
"timeout",
"timeout",
null
],
"result":"timeout"
},
{
"synchronise":[
"tau__",
null,
null,
null,
null,
null
],
"result":"tau__"
},
{
"synchronise":[
null,
"tau__",
null,
null,
null,
null
],
"result":"tau__"
},
{
"synchronise":[
null,
null,
"tau__",
null,
null,
null
],
"result":"tau__"
},
{
"synchronise":[
null,
null,
null,
"tau__",
null,
null
],
"result":"tau__"
},
{
"synchronise":[
null,
null,
null,
null,
null,
"tau__"
],
"result":"tau__"
}
]
}
}