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.
 
 
 
 

1708 lines
60 KiB

{
"jani-version":1,
"features":[
"derived-operators"
],
"name":"Converted from PRISM by IscasMC",
"type":"mdp",
"actions":[
{
"name":"t1_nlb_up"
},
{
"name":"t1_nrb_up"
},
{
"name":"t1_enter_l"
},
{
"name":"t1_enter_r"
},
{
"name":"t1_must_l"
},
{
"name":"t1_must_r"
},
{
"name":"t1_l_up"
},
{
"name":"t1_r_up"
},
{
"name":"t1_l_copy"
},
{
"name":"t1_r_copy"
},
{
"name":"t1_l_exit"
},
{
"name":"t1_r_exit"
}
],
"variables":[
{
"name":"nlb",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":8
}
},
{
"name":"lbm",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":1
}
},
{
"name":"nrb",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":8
}
},
{
"name":"rbm",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":1
}
},
{
"name":"rin",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":1
}
},
{
"name":"lin",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":1
}
},
{
"name":"flag",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":1
}
},
{
"name":"t1_loc",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":2
}
},
{
"name":"t1_val",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":8
}
},
{
"name":"t1_com",
"type":{
"kind":"bounded",
"base":"int",
"lower-bound":0,
"upper-bound":1
}
}
],
"observables":[
{
"name":""
}
],
"initial-states":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"nlb",
"right":0
},
"right":{
"op":"=",
"left":"lbm",
"right":0
}
},
"right":{
"op":"=",
"left":"nrb",
"right":0
}
},
"right":{
"op":"=",
"left":"rbm",
"right":0
}
},
"right":{
"op":"=",
"left":"rin",
"right":0
}
},
"right":{
"op":"=",
"left":"lin",
"right":0
}
},
"right":{
"op":"=",
"left":"flag",
"right":0
}
},
"right":{
"op":"=",
"left":"t1_loc",
"right":1
}
},
"right":{
"op":"=",
"left":"t1_val",
"right":0
}
},
"right":{
"op":"=",
"left":"t1_com",
"right":0
}
}
},
"automata":[
{
"name":"leftboard",
"locations":[
{
"name":"location",
"observables":[
{
"ref":"",
"value":{
"op":"?:",
"args":[
{
"op":"∧",
"left":{
"op":"≠",
"left":"lin",
"right":1
},
"right":{
"op":"≠",
"left":"rin",
"right":1
}
},
1,
0
]
}
}
]
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"t1_nlb_up",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"lbm",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":0
}
},
"right":{
"op":"=",
"left":"lin",
"right":0
}
},
"right":{
"op":"=",
"left":"t1_val",
"right":"nlb"
}
},
"right":{
"op":"≤",
"left":{
"op":"+",
"left":"nlb",
"right":3
},
"right":8
}
}
},
"destinations":[
{
"probability":{
"exp":0.5000000
},
"location":"location",
"assignments":[
{
"ref":"nlb",
"value":{
"op":"+",
"left":"nlb",
"right":2
}
},
{
"ref":"lbm",
"value":0
}
],
"observables":[
]
},
{
"probability":{
"exp":0.5000000
},
"location":"location",
"assignments":[
{
"ref":"nlb",
"value":{
"op":"+",
"left":"nlb",
"right":3
}
},
{
"ref":"lbm",
"value":1
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_nlb_up",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"lbm",
"right":1
},
"right":{
"op":"=",
"left":"t1_loc",
"right":0
}
},
"right":{
"op":"=",
"left":"lin",
"right":0
}
},
"right":{
"op":"=",
"left":"t1_val",
"right":"nlb"
}
},
"right":{
"op":"≤",
"left":{
"op":"+",
"left":"nlb",
"right":2
},
"right":8
}
}
},
"destinations":[
{
"probability":{
"exp":0.5000000
},
"location":"location",
"assignments":[
{
"ref":"nlb",
"value":{
"op":"+",
"left":"nlb",
"right":2
}
},
{
"ref":"lbm",
"value":1
}
],
"observables":[
]
},
{
"probability":{
"exp":0.5000000
},
"location":"location",
"assignments":[
{
"ref":"nlb",
"value":{
"op":"+",
"left":"nlb",
"right":1
}
},
{
"ref":"lbm",
"value":0
}
],
"observables":[
]
}
]
}
]
},
{
"name":"rightboard",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"t1_nrb_up",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"rbm",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":1
}
},
"right":{
"op":"=",
"left":"rin",
"right":0
}
},
"right":{
"op":"=",
"left":"t1_val",
"right":"nrb"
}
},
"right":{
"op":"≤",
"left":{
"op":"+",
"left":"nrb",
"right":3
},
"right":8
}
}
},
"destinations":[
{
"probability":{
"exp":0.5000000
},
"location":"location",
"assignments":[
{
"ref":"nrb",
"value":{
"op":"+",
"left":"nrb",
"right":2
}
},
{
"ref":"rbm",
"value":0
}
],
"observables":[
]
},
{
"probability":{
"exp":0.5000000
},
"location":"location",
"assignments":[
{
"ref":"nrb",
"value":{
"op":"+",
"left":"nrb",
"right":3
}
},
{
"ref":"rbm",
"value":1
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_nrb_up",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"rbm",
"right":1
},
"right":{
"op":"=",
"left":"t1_loc",
"right":1
}
},
"right":{
"op":"=",
"left":"rin",
"right":0
}
},
"right":{
"op":"=",
"left":"t1_val",
"right":"nrb"
}
},
"right":{
"op":"≤",
"left":{
"op":"+",
"left":"nrb",
"right":2
},
"right":8
}
}
},
"destinations":[
{
"probability":{
"exp":0.5000000
},
"location":"location",
"assignments":[
{
"ref":"nrb",
"value":{
"op":"+",
"left":"nrb",
"right":2
}
},
{
"ref":"rbm",
"value":1
}
],
"observables":[
]
},
{
"probability":{
"exp":0.5000000
},
"location":"location",
"assignments":[
{
"ref":"nrb",
"value":{
"op":"+",
"left":"nrb",
"right":1
}
},
{
"ref":"rbm",
"value":0
}
],
"observables":[
]
}
]
}
]
},
{
"name":"counter",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"t1_enter_l",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"t1_loc",
"right":0
},
"right":{
"op":"=",
"left":"flag",
"right":0
}
},
"right":{
"op":"=",
"left":"lin",
"right":0
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"lin",
"value":{
"op":"+",
"left":"lin",
"right":1
}
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_enter_r",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"t1_loc",
"right":1
},
"right":{
"op":"=",
"left":"flag",
"right":0
}
},
"right":{
"op":"=",
"left":"rin",
"right":0
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"rin",
"value":{
"op":"+",
"left":"rin",
"right":1
}
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_must_l",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"t1_loc",
"right":0
},
"right":{
"op":"=",
"left":"flag",
"right":0
}
},
"right":{
"op":">",
"left":"lin",
"right":0
}
},
"right":{
"op":"≤",
"left":{
"op":"+",
"left":"lin",
"right":1
},
"right":1
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"lin",
"value":{
"op":"+",
"left":"lin",
"right":1
}
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_must_r",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"t1_loc",
"right":1
},
"right":{
"op":"=",
"left":"flag",
"right":0
}
},
"right":{
"op":">",
"left":"rin",
"right":0
}
},
"right":{
"op":"≤",
"left":{
"op":"+",
"left":"rin",
"right":1
},
"right":1
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"rin",
"value":{
"op":"+",
"left":"rin",
"right":1
}
}
],
"observables":[
]
}
]
}
]
},
{
"name":"semaphore",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"t1_nlb_up",
"guard":{
"exp":{
"op":"=",
"left":"flag",
"right":0
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"flag",
"value":1
}
]
}
]
},
{
"location":"location",
"action":"t1_nrb_up",
"guard":{
"exp":{
"op":"=",
"left":"flag",
"right":0
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"flag",
"value":1
}
]
}
]
},
{
"location":"location",
"action":"t1_l_up",
"guard":{
"exp":{
"op":"=",
"left":"flag",
"right":1
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"flag",
"value":0
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_r_up",
"guard":{
"exp":{
"op":"=",
"left":"flag",
"right":1
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"flag",
"value":0
}
],
"observables":[
]
}
]
}
]
},
{
"name":"tourist1",
"locations":[
{
"name":"location"
}
],
"initial-locations":[
"location"
],
"edges":[
{
"location":"location",
"action":"t1_nlb_up",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"t1_com",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":0
}
},
"right":{
"op":"=",
"left":"lin",
"right":0
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_com",
"value":1
}
]
}
]
},
{
"location":"location",
"action":"t1_nrb_up",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"t1_com",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":1
}
},
"right":{
"op":"=",
"left":"rin",
"right":0
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_com",
"value":1
}
]
}
]
},
{
"location":"location",
"action":"t1_l_up",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"t1_com",
"right":1
},
"right":{
"op":"=",
"left":"t1_loc",
"right":0
}
},
"right":{
"op":"=",
"left":"lin",
"right":0
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_val",
"value":"nlb"
},
{
"ref":"t1_loc",
"value":1
},
{
"ref":"t1_com",
"value":0
}
]
}
]
},
{
"location":"location",
"action":"t1_r_up",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"t1_com",
"right":1
},
"right":{
"op":"=",
"left":"t1_loc",
"right":1
}
},
"right":{
"op":"=",
"left":"rin",
"right":0
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_val",
"value":"nrb"
},
{
"ref":"t1_loc",
"value":0
},
{
"ref":"t1_com",
"value":0
}
]
}
]
},
{
"location":"location",
"action":"t1_l_copy",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"flag",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":0
}
},
"right":{
"op":"<",
"left":"t1_val",
"right":"nlb"
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_val",
"value":"nlb"
},
{
"ref":"t1_loc",
"value":1
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_r_copy",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"flag",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":1
}
},
"right":{
"op":"<",
"left":"t1_val",
"right":"nrb"
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_val",
"value":"nrb"
},
{
"ref":"t1_loc",
"value":0
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_enter_l",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"flag",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":0
}
},
"right":{
"op":"=",
"left":"lin",
"right":0
}
},
"right":{
"op":">",
"left":"t1_val",
"right":"nlb"
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_loc",
"value":2
}
]
}
]
},
{
"location":"location",
"action":"t1_enter_r",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"flag",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":1
}
},
"right":{
"op":"=",
"left":"rin",
"right":0
}
},
"right":{
"op":">",
"left":"t1_val",
"right":"nrb"
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_loc",
"value":2
}
]
}
]
},
{
"location":"location",
"action":"t1_must_l",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"flag",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":0
}
},
"right":{
"op":">",
"left":"lin",
"right":0
}
},
"right":{
"op":"≤",
"left":{
"op":"+",
"left":"lin",
"right":1
},
"right":1
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_loc",
"value":2
}
]
}
]
},
{
"location":"location",
"action":"t1_must_r",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"flag",
"right":0
},
"right":{
"op":"=",
"left":"t1_loc",
"right":1
}
},
"right":{
"op":">",
"left":"rin",
"right":0
}
},
"right":{
"op":"≤",
"left":{
"op":"+",
"left":"rin",
"right":1
},
"right":1
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_loc",
"value":2
}
]
}
]
},
{
"location":"location",
"action":"t1_l_exit",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"flag",
"right":0
},
"right":{
"op":"=",
"left":"lin",
"right":1
}
},
"right":{
"op":"=",
"left":"t1_loc",
"right":2
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_val",
"value":"t1_val"
}
],
"observables":[
]
}
]
},
{
"location":"location",
"action":"t1_r_exit",
"guard":{
"exp":{
"op":"∧",
"left":{
"op":"∧",
"left":{
"op":"=",
"left":"flag",
"right":0
},
"right":{
"op":"=",
"left":"rin",
"right":1
}
},
"right":{
"op":"=",
"left":"t1_loc",
"right":2
}
}
},
"destinations":[
{
"probability":{
"exp":1
},
"location":"location",
"assignments":[
{
"ref":"t1_val",
"value":"t1_val"
}
],
"observables":[
]
}
]
}
]
}
],
"system":{
"elements":[
{
"automaton":"leftboard"
},
{
"automaton":"rightboard"
},
{
"automaton":"counter"
},
{
"automaton":"semaphore"
},
{
"automaton":"tourist1"
}
],
"syncs":[
{
"synchronise":[
"t1_nlb_up",
null,
null,
"t1_nlb_up",
"t1_nlb_up"
],
"result":"t1_nlb_up"
},
{
"synchronise":[
null,
"t1_nrb_up",
null,
"t1_nrb_up",
"t1_nrb_up"
],
"result":"t1_nrb_up"
},
{
"synchronise":[
null,
null,
"t1_enter_l",
null,
"t1_enter_l"
],
"result":"t1_enter_l"
},
{
"synchronise":[
null,
null,
"t1_enter_r",
null,
"t1_enter_r"
],
"result":"t1_enter_r"
},
{
"synchronise":[
null,
null,
"t1_must_l",
null,
"t1_must_l"
],
"result":"t1_must_l"
},
{
"synchronise":[
null,
null,
"t1_must_r",
null,
"t1_must_r"
],
"result":"t1_must_r"
},
{
"synchronise":[
null,
null,
null,
"t1_l_up",
"t1_l_up"
],
"result":"t1_l_up"
},
{
"synchronise":[
null,
null,
null,
"t1_r_up",
"t1_r_up"
],
"result":"t1_r_up"
},
{
"synchronise":[
null,
null,
null,
null,
"t1_l_copy"
],
"result":"t1_l_copy"
},
{
"synchronise":[
null,
null,
null,
null,
"t1_r_copy"
],
"result":"t1_r_copy"
},
{
"synchronise":[
null,
null,
null,
null,
"t1_l_exit"
],
"result":"t1_l_exit"
},
{
"synchronise":[
null,
null,
null,
null,
"t1_r_exit"
],
"result":"t1_r_exit"
}
]
}
}