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