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.
1556 lines
53 KiB
1556 lines
53 KiB
|
|
{
|
|
"jani-version":1,
|
|
"features":[
|
|
"derived-operators"
|
|
],
|
|
"name":"Converted from PRISM by IscasMC",
|
|
"type":"ctmc",
|
|
"actions":[
|
|
{
|
|
"name":"startLeft"
|
|
},
|
|
{
|
|
"name":"repairLeft"
|
|
},
|
|
{
|
|
"name":"tau__"
|
|
},
|
|
{
|
|
"name":"startRight"
|
|
},
|
|
{
|
|
"name":"startToLeft"
|
|
},
|
|
{
|
|
"name":"startToRight"
|
|
},
|
|
{
|
|
"name":"startLine"
|
|
},
|
|
{
|
|
"name":"repairRight"
|
|
},
|
|
{
|
|
"name":"repairToLeft"
|
|
},
|
|
{
|
|
"name":"repairToRight"
|
|
},
|
|
{
|
|
"name":"repairLine"
|
|
}
|
|
],
|
|
"constants":[
|
|
{
|
|
"name":"N",
|
|
"type":"int"
|
|
}
|
|
],
|
|
"variables":[
|
|
{
|
|
"name":"left_n",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":"N"
|
|
}
|
|
},
|
|
{
|
|
"name":"left",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"r",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"line",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"line_n",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"right_n",
|
|
"type":{
|
|
"kind":"bounded",
|
|
"base":"int",
|
|
"lower-bound":0,
|
|
"upper-bound":"N"
|
|
}
|
|
},
|
|
{
|
|
"name":"right",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"toleft",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"toleft_n",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"toright",
|
|
"type":"bool"
|
|
},
|
|
{
|
|
"name":"toright_n",
|
|
"type":"bool"
|
|
}
|
|
],
|
|
"observables":[
|
|
{
|
|
"name":"\"percent_op\""
|
|
},
|
|
{
|
|
"name":"\"time_not_min\""
|
|
},
|
|
{
|
|
"name":"\"num_repairs\""
|
|
}
|
|
],
|
|
"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":"left_n",
|
|
"right":"N"
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"left",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"r",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"line",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"line_n",
|
|
"right":true
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"right_n",
|
|
"right":"N"
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"right",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"toleft",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"toleft_n",
|
|
"right":true
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"toright",
|
|
"right":false
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"=",
|
|
"left":"toright_n",
|
|
"right":true
|
|
}
|
|
}
|
|
},
|
|
"automata":[
|
|
{
|
|
"name":"Left",
|
|
"locations":[
|
|
{
|
|
"name":"location",
|
|
"observables":[
|
|
{
|
|
"ref":"\"percent_op\"",
|
|
"value":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"*",
|
|
"left":100,
|
|
"right":{
|
|
"op":"+",
|
|
"left":"left_n",
|
|
"right":"right_n"
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"*",
|
|
"left":2,
|
|
"right":"N"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ref":"\"time_not_min\"",
|
|
"value":{
|
|
"op":"?:",
|
|
"args":[
|
|
{
|
|
"op":"¬",
|
|
"exp":{
|
|
"op":"∨",
|
|
"left":{
|
|
"op":"∨",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"≥",
|
|
"left":"left_n",
|
|
"right":{
|
|
"op":"⌊⌋",
|
|
"exp":{
|
|
"op":"*",
|
|
"left":0.7500000,
|
|
"right":"N"
|
|
}
|
|
}
|
|
},
|
|
"right":"toleft_n"
|
|
},
|
|
"right":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"≥",
|
|
"left":"right_n",
|
|
"right":{
|
|
"op":"⌊⌋",
|
|
"exp":{
|
|
"op":"*",
|
|
"left":0.7500000,
|
|
"right":"N"
|
|
}
|
|
}
|
|
},
|
|
"right":"toright_n"
|
|
}
|
|
},
|
|
"right":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"≥",
|
|
"left":{
|
|
"op":"+",
|
|
"left":"left_n",
|
|
"right":"right_n"
|
|
},
|
|
"right":{
|
|
"op":"⌊⌋",
|
|
"exp":{
|
|
"op":"*",
|
|
"left":0.7500000,
|
|
"right":"N"
|
|
}
|
|
}
|
|
},
|
|
"right":"toleft_n"
|
|
},
|
|
"right":"line_n"
|
|
},
|
|
"right":"toright_n"
|
|
}
|
|
}
|
|
},
|
|
1,
|
|
0
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"startLeft",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"¬",
|
|
"exp":"left"
|
|
},
|
|
"right":{
|
|
"op":"<",
|
|
"left":"left_n",
|
|
"right":"N"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"left",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairLeft",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":"left",
|
|
"right":{
|
|
"op":"<",
|
|
"left":"left_n",
|
|
"right":"N"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"left",
|
|
"value":false
|
|
},
|
|
{
|
|
"ref":"left_n",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"left_n",
|
|
"right":1
|
|
}
|
|
}
|
|
],
|
|
"observables":[
|
|
{
|
|
"ref":"\"num_repairs\"",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"tau__",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"*",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":500
|
|
},
|
|
"right":"left_n"
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":">",
|
|
"left":"left_n",
|
|
"right":0
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"*",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":500
|
|
},
|
|
"right":"left_n"
|
|
},
|
|
"right":{
|
|
"op":"*",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":500
|
|
},
|
|
"right":"left_n"
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"left_n",
|
|
"value":{
|
|
"op":"-",
|
|
"left":"left_n",
|
|
"right":1
|
|
}
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"Repairman",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"startLeft",
|
|
"rate":{
|
|
"exp":10
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"¬",
|
|
"exp":"r"
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":10,
|
|
"right":10
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"startRight",
|
|
"rate":{
|
|
"exp":10
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"¬",
|
|
"exp":"r"
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":10,
|
|
"right":10
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"startToLeft",
|
|
"rate":{
|
|
"exp":10
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"¬",
|
|
"exp":"r"
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":10,
|
|
"right":10
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"startToRight",
|
|
"rate":{
|
|
"exp":10
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"¬",
|
|
"exp":"r"
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":10,
|
|
"right":10
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"startLine",
|
|
"rate":{
|
|
"exp":10
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"¬",
|
|
"exp":"r"
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":10,
|
|
"right":10
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":true
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairLeft",
|
|
"rate":{
|
|
"exp":2
|
|
},
|
|
"guard":{
|
|
"exp":"r"
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":2,
|
|
"right":2
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":false
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairRight",
|
|
"rate":{
|
|
"exp":2
|
|
},
|
|
"guard":{
|
|
"exp":"r"
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":2,
|
|
"right":2
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
{
|
|
"ref":"\"num_repairs\"",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairToLeft",
|
|
"rate":{
|
|
"exp":0.2500000
|
|
},
|
|
"guard":{
|
|
"exp":"r"
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":0.2500000,
|
|
"right":0.2500000
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
{
|
|
"ref":"\"num_repairs\"",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairToRight",
|
|
"rate":{
|
|
"exp":0.2500000
|
|
},
|
|
"guard":{
|
|
"exp":"r"
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":0.2500000,
|
|
"right":0.2500000
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
{
|
|
"ref":"\"num_repairs\"",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairLine",
|
|
"rate":{
|
|
"exp":0.1250000
|
|
},
|
|
"guard":{
|
|
"exp":"r"
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":0.1250000,
|
|
"right":0.1250000
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"r",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
{
|
|
"ref":"\"num_repairs\"",
|
|
"value":1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"Line",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"startLine",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"¬",
|
|
"exp":"line"
|
|
},
|
|
"right":{
|
|
"op":"¬",
|
|
"exp":"line_n"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"line",
|
|
"value":true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairLine",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":"line",
|
|
"right":{
|
|
"op":"¬",
|
|
"exp":"line_n"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"line",
|
|
"value":false
|
|
},
|
|
{
|
|
"ref":"line_n",
|
|
"value":true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"tau__",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":5000
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":"line_n"
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":5000
|
|
},
|
|
"right":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":5000
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"line_n",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"Right",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"startRight",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"¬",
|
|
"exp":"right"
|
|
},
|
|
"right":{
|
|
"op":"<",
|
|
"left":"right_n",
|
|
"right":"N"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"right",
|
|
"value":true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairRight",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":"right",
|
|
"right":{
|
|
"op":"<",
|
|
"left":"right_n",
|
|
"right":"N"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"right",
|
|
"value":false
|
|
},
|
|
{
|
|
"ref":"right_n",
|
|
"value":{
|
|
"op":"+",
|
|
"left":"right_n",
|
|
"right":1
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"tau__",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"*",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":500
|
|
},
|
|
"right":"right_n"
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":">",
|
|
"left":"right_n",
|
|
"right":0
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"*",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":500
|
|
},
|
|
"right":"right_n"
|
|
},
|
|
"right":{
|
|
"op":"*",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":500
|
|
},
|
|
"right":"right_n"
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"right_n",
|
|
"value":{
|
|
"op":"-",
|
|
"left":"right_n",
|
|
"right":1
|
|
}
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"ToLeft",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"startToLeft",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"¬",
|
|
"exp":"toleft"
|
|
},
|
|
"right":{
|
|
"op":"¬",
|
|
"exp":"toleft_n"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"toleft",
|
|
"value":true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairToLeft",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":"toleft",
|
|
"right":{
|
|
"op":"¬",
|
|
"exp":"toleft_n"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"toleft",
|
|
"value":false
|
|
},
|
|
{
|
|
"ref":"toleft_n",
|
|
"value":true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"tau__",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":4000
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":"toleft_n"
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":4000
|
|
},
|
|
"right":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":4000
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"toleft_n",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name":"ToRight",
|
|
"locations":[
|
|
{
|
|
"name":"location"
|
|
}
|
|
],
|
|
"initial-locations":[
|
|
"location"
|
|
],
|
|
"edges":[
|
|
{
|
|
"location":"location",
|
|
"action":"startToRight",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":{
|
|
"op":"¬",
|
|
"exp":"toright"
|
|
},
|
|
"right":{
|
|
"op":"¬",
|
|
"exp":"toright_n"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"toright",
|
|
"value":true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"repairToRight",
|
|
"rate":{
|
|
"exp":1
|
|
},
|
|
"guard":{
|
|
"exp":{
|
|
"op":"∧",
|
|
"left":"toright",
|
|
"right":{
|
|
"op":"¬",
|
|
"exp":"toright_n"
|
|
}
|
|
}
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":1
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"toright",
|
|
"value":false
|
|
},
|
|
{
|
|
"ref":"toright_n",
|
|
"value":true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"location":"location",
|
|
"action":"tau__",
|
|
"rate":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":4000
|
|
}
|
|
},
|
|
"guard":{
|
|
"exp":"toright_n"
|
|
},
|
|
"destinations":[
|
|
{
|
|
"probability":{
|
|
"exp":{
|
|
"op":"/",
|
|
"left":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":4000
|
|
},
|
|
"right":{
|
|
"op":"/",
|
|
"left":1,
|
|
"right":4000
|
|
}
|
|
}
|
|
},
|
|
"location":"location",
|
|
"assignments":[
|
|
{
|
|
"ref":"toright_n",
|
|
"value":false
|
|
}
|
|
],
|
|
"observables":[
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"system":{
|
|
"elements":[
|
|
{
|
|
"automaton":"Left"
|
|
},
|
|
{
|
|
"automaton":"Repairman"
|
|
},
|
|
{
|
|
"automaton":"Line"
|
|
},
|
|
{
|
|
"automaton":"Right"
|
|
},
|
|
{
|
|
"automaton":"ToLeft"
|
|
},
|
|
{
|
|
"automaton":"ToRight"
|
|
}
|
|
],
|
|
"syncs":[
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"startToRight",
|
|
null,
|
|
null,
|
|
null,
|
|
"startToRight"
|
|
],
|
|
"result":"startToRight"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"repairToRight",
|
|
null,
|
|
null,
|
|
null,
|
|
"repairToRight"
|
|
],
|
|
"result":"repairToRight"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"startToLeft",
|
|
null,
|
|
null,
|
|
"startToLeft",
|
|
null
|
|
],
|
|
"result":"startToLeft"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"repairToLeft",
|
|
null,
|
|
null,
|
|
"repairToLeft",
|
|
null
|
|
],
|
|
"result":"repairToLeft"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"startRight",
|
|
null,
|
|
"startRight",
|
|
null,
|
|
null
|
|
],
|
|
"result":"startRight"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"repairRight",
|
|
null,
|
|
"repairRight",
|
|
null,
|
|
null
|
|
],
|
|
"result":"repairRight"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"startLine",
|
|
"startLine",
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"result":"startLine"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
"repairLine",
|
|
"repairLine",
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"result":"repairLine"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
"startLeft",
|
|
"startLeft",
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"result":"startLeft"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
"repairLeft",
|
|
"repairLeft",
|
|
null,
|
|
null,
|
|
null,
|
|
null
|
|
],
|
|
"result":"repairLeft"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
"tau__",
|
|
null,
|
|
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,
|
|
"tau__",
|
|
null
|
|
],
|
|
"result":"tau__"
|
|
},
|
|
{
|
|
"synchronise":[
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
null,
|
|
"tau__"
|
|
],
|
|
"result":"tau__"
|
|
}
|
|
]
|
|
}
|
|
}
|