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.
		
		
		
		
		
			
		
			
				
					
					
						
							2092 lines
						
					
					
						
							31 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							2092 lines
						
					
					
						
							31 KiB
						
					
					
				| { | |
| 	"jani-version": 1, | |
| 	"name": "modelName", | |
| 	"type": "mdp", | |
| 	"actions": [ | |
| 		{ | |
| 			"name": "put" | |
| 		}, | |
| 		{ | |
| 			"name": "get" | |
| 		}, | |
| 		{ | |
| 			"name": "put_k" | |
| 		}, | |
| 		{ | |
| 			"name": "get_k" | |
| 		}, | |
| 		{ | |
| 			"name": "put_l" | |
| 		}, | |
| 		{ | |
| 			"name": "get_l" | |
| 		}, | |
| 		{ | |
| 			"name": "new_file" | |
| 		}, | |
| 		{ | |
| 			"name": "s_ok" | |
| 		}, | |
| 		{ | |
| 			"name": "s_dk" | |
| 		}, | |
| 		{ | |
| 			"name": "s_nok" | |
| 		}, | |
| 		{ | |
| 			"name": "s_restart" | |
| 		}, | |
| 		{ | |
| 			"name": "r_ok" | |
| 		}, | |
| 		{ | |
| 			"name": "r_inc" | |
| 		}, | |
| 		{ | |
| 			"name": "r_fst" | |
| 		}, | |
| 		{ | |
| 			"name": "r_nok" | |
| 		}, | |
| 		{ | |
| 			"name": "r_timeout" | |
| 		}, | |
| 		{ | |
| 			"name": "error" | |
| 		}, | |
| 		{ | |
| 			"name": "tick" | |
| 		} | |
| 	], | |
| 	"variables": [ | |
| 		{ | |
| 			"name": "ff", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "lf", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "ab", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "i", | |
| 			"type": { | |
| 				"kind": "bounded", | |
| 				"base": "int", | |
| 				"lower-bound": 0, | |
| 				"upper-bound": 16 | |
| 			}, | |
| 			"initial-value": 0 | |
| 		}, | |
| 		{ | |
| 			"name": "inTransitK", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "inTransitL", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "first_file_done", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "get_k_seen", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "s_ok_seen", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "s_nok_seen", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "s_dk_seen", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "s_restart_seen", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "r_ok_seen", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "r_timeout_seen", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "premature_timeout", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "channel_k_overflow", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "channel_l_overflow", | |
| 			"type": "bool", | |
| 			"initial-value": false | |
| 		}, | |
| 		{ | |
| 			"name": "Sender_location", | |
| 			"type": "int", | |
| 			"initial-value": 0 | |
| 		}, | |
| 		{ | |
| 			"name": "Receiver_location", | |
| 			"type": "int", | |
| 			"initial-value": 0 | |
| 		}, | |
| 		{ | |
| 			"name": "ChannelK_location", | |
| 			"type": "int", | |
| 			"initial-value": 0 | |
| 		}, | |
| 		{ | |
| 			"name": "ChannelL_location", | |
| 			"type": "int", | |
| 			"initial-value": 0 | |
| 		}, | |
| 		{ | |
| 			"name": "Observer_location", | |
| 			"type": "int", | |
| 			"initial-value": 0 | |
| 		} | |
| 	], | |
| 	"properties": [ | |
| 		{ | |
| 			"name": "P_A", | |
| 			"reach": { | |
| 				"op": "∧", | |
| 				"args": [ | |
| 					"s_nok_seen", | |
| 					"r_ok_seen" | |
| 				] | |
| 			}, | |
| 			"type": "probability-max-query" | |
| 		}, | |
| 		{ | |
| 			"name": "P_B", | |
| 			"reach": { | |
| 				"op": "∧", | |
| 				"args": [ | |
| 					"s_ok_seen", | |
| 					{ | |
| 						"op": "!", | |
| 						"args": [ | |
| 							"r_ok_seen" | |
| 						] | |
| 					} | |
| 				] | |
| 			}, | |
| 			"type": "probability-max-query" | |
| 		}, | |
| 		{ | |
| 			"name": "P_1", | |
| 			"reach": { | |
| 				"op": "∨", | |
| 				"args": [ | |
| 					"s_nok_seen", | |
| 					"s_dk_seen" | |
| 				] | |
| 			}, | |
| 			"type": "probability-max-query" | |
| 		}, | |
| 		{ | |
| 			"name": "P_2", | |
| 			"reach": "s_dk_seen", | |
| 			"type": "probability-max-query" | |
| 		}, | |
| 		{ | |
| 			"name": "P_3", | |
| 			"reach": { | |
| 				"op": "∧", | |
| 				"args": [ | |
| 					"s_nok_seen", | |
| 					{ | |
| 						"op": ">", | |
| 						"args": [ | |
| 							"i", | |
| 							8 | |
| 						] | |
| 					} | |
| 				] | |
| 			}, | |
| 			"type": "probability-max-query" | |
| 		}, | |
| 		{ | |
| 			"name": "P_4", | |
| 			"reach": { | |
| 				"op": "∧", | |
| 				"args": [ | |
| 					{ | |
| 						"op": "∨", | |
| 						"args": [ | |
| 							{ | |
| 								"op": "∨", | |
| 								"args": [ | |
| 									"s_ok_seen", | |
| 									"s_nok_seen" | |
| 								] | |
| 							}, | |
| 							"s_dk_seen" | |
| 						] | |
| 					}, | |
| 					{ | |
| 						"op": "!", | |
| 						"args": [ | |
| 							"get_k_seen" | |
| 						] | |
| 					} | |
| 				] | |
| 			}, | |
| 			"type": "probability-max-query" | |
| 		} | |
| 	], | |
| 	"automata": [ | |
| 		{ | |
| 			"name": "Sender", | |
| 			"variables": [ | |
| 				{ | |
| 					"name": "bit", | |
| 					"type": "bool", | |
| 					"initial-value": false | |
| 				}, | |
| 				{ | |
| 					"name": "rc", | |
| 					"type": { | |
| 						"kind": "bounded", | |
| 						"base": "int", | |
| 						"lower-bound": 0, | |
| 						"upper-bound": 2 | |
| 					}, | |
| 					"initial-value": 0 | |
| 				}, | |
| 				{ | |
| 					"name": "c", | |
| 					"type": { | |
| 						"kind": "bounded", | |
| 						"base": "int", | |
| 						"lower-bound": 0, | |
| 						"upper-bound": 16 | |
| 					}, | |
| 					"initial-value": 0 | |
| 				} | |
| 			], | |
| 			"locations": [ | |
| 				{ | |
| 					"name": "l_0" | |
| 				}, | |
| 				{ | |
| 					"name": "l_1" | |
| 				}, | |
| 				{ | |
| 					"name": "l_2" | |
| 				}, | |
| 				{ | |
| 					"name": "l_3" | |
| 				}, | |
| 				{ | |
| 					"name": "l_4" | |
| 				}, | |
| 				{ | |
| 					"name": "l_5" | |
| 				}, | |
| 				{ | |
| 					"name": "l_6" | |
| 				}, | |
| 				{ | |
| 					"name": "l_7" | |
| 				} | |
| 			], | |
| 			"initial-location": "l_0", | |
| 			"edges": [ | |
| 				{ | |
| 					"location": "l_0", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"i", | |
| 							16 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "i", | |
| 									"value": { | |
| 										"op": "+", | |
| 										"args": [ | |
| 											"i", | |
| 											1 | |
| 										] | |
| 									} | |
| 								}, | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 1 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "s_ok", | |
| 					"guard": { | |
| 						"op": "=", | |
| 						"args": [ | |
| 							"i", | |
| 							16 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_2", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "first_file_done", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 2 | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							{ | |
| 								"op": "≥", | |
| 								"args": [ | |
| 									"i", | |
| 									16 | |
| 								] | |
| 							}, | |
| 							{ | |
| 								"op": "<", | |
| 								"args": [ | |
| 									"c", | |
| 									0 | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "put_k", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_3", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "ff", | |
| 									"value": { | |
| 										"op": "=", | |
| 										"args": [ | |
| 											"i", | |
| 											1 | |
| 										] | |
| 									} | |
| 								}, | |
| 								{ | |
| 									"ref": "lf", | |
| 									"value": { | |
| 										"op": "=", | |
| 										"args": [ | |
| 											"i", | |
| 											16 | |
| 										] | |
| 									} | |
| 								}, | |
| 								{ | |
| 									"ref": "ab", | |
| 									"value": "bit" | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 3 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							0 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_2", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_4", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 4 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"action": "get_l", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_5", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "bit", | |
| 									"value": { | |
| 										"op": "!", | |
| 										"args": [ | |
| 											"bit" | |
| 										] | |
| 									} | |
| 								}, | |
| 								{ | |
| 									"ref": "rc", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 5 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							{ | |
| 								"op": "<", | |
| 								"args": [ | |
| 									"rc", | |
| 									2 | |
| 								] | |
| 							}, | |
| 							{ | |
| 								"op": "≥", | |
| 								"args": [ | |
| 									"c", | |
| 									3 | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "rc", | |
| 									"value": { | |
| 										"op": "+", | |
| 										"args": [ | |
| 											"rc", | |
| 											1 | |
| 										] | |
| 									} | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 1 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"action": "s_nok", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							{ | |
| 								"op": "∧", | |
| 								"args": [ | |
| 									{ | |
| 										"op": "<", | |
| 										"args": [ | |
| 											"i", | |
| 											16 | |
| 										] | |
| 									}, | |
| 									{ | |
| 										"op": "≥", | |
| 										"args": [ | |
| 											"rc", | |
| 											2 | |
| 										] | |
| 									} | |
| 								] | |
| 							}, | |
| 							{ | |
| 								"op": "≥", | |
| 								"args": [ | |
| 									"c", | |
| 									3 | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_6", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "rc", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 6 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"action": "s_dk", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							{ | |
| 								"op": "∧", | |
| 								"args": [ | |
| 									{ | |
| 										"op": "≥", | |
| 										"args": [ | |
| 											"i", | |
| 											16 | |
| 										] | |
| 									}, | |
| 									{ | |
| 										"op": "≥", | |
| 										"args": [ | |
| 											"rc", | |
| 											2 | |
| 										] | |
| 									} | |
| 								] | |
| 							}, | |
| 							{ | |
| 								"op": "≥", | |
| 								"args": [ | |
| 									"c", | |
| 									3 | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_6", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "rc", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 6 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							3 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_3", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_4", | |
| 					"action": "tick", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_4" | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_5", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 7 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_6", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_7", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 8 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_7", | |
| 					"action": "s_restart", | |
| 					"guard": { | |
| 						"op": "≥", | |
| 						"args": [ | |
| 							"c", | |
| 							15 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_4", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "bit", | |
| 									"value": false | |
| 								}, | |
| 								{ | |
| 									"ref": "first_file_done", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Sender_location", | |
| 									"value": 4 | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_7", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							15 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_7", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				} | |
| 			] | |
| 		}, | |
| 		{ | |
| 			"name": "Receiver", | |
| 			"variables": [ | |
| 				{ | |
| 					"name": "r_ff", | |
| 					"type": "bool", | |
| 					"initial-value": false | |
| 				}, | |
| 				{ | |
| 					"name": "r_lf", | |
| 					"type": "bool", | |
| 					"initial-value": false | |
| 				}, | |
| 				{ | |
| 					"name": "r_ab", | |
| 					"type": "bool", | |
| 					"initial-value": false | |
| 				}, | |
| 				{ | |
| 					"name": "bit", | |
| 					"type": "bool", | |
| 					"initial-value": false | |
| 				}, | |
| 				{ | |
| 					"name": "c", | |
| 					"type": { | |
| 						"kind": "bounded", | |
| 						"base": "int", | |
| 						"lower-bound": 0, | |
| 						"upper-bound": 16 | |
| 					}, | |
| 					"initial-value": 0 | |
| 				} | |
| 			], | |
| 			"locations": [ | |
| 				{ | |
| 					"name": "l_0" | |
| 				}, | |
| 				{ | |
| 					"name": "l_1" | |
| 				}, | |
| 				{ | |
| 					"name": "l_2" | |
| 				}, | |
| 				{ | |
| 					"name": "l_3" | |
| 				}, | |
| 				{ | |
| 					"name": "l_4" | |
| 				}, | |
| 				{ | |
| 					"name": "l_5" | |
| 				}, | |
| 				{ | |
| 					"name": "l_6" | |
| 				} | |
| 			], | |
| 			"initial-location": "l_0", | |
| 			"edges": [ | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "get_k", | |
| 					"guard": "ff", | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "bit", | |
| 									"value": "ab" | |
| 								}, | |
| 								{ | |
| 									"ref": "r_ff", | |
| 									"value": "ff" | |
| 								}, | |
| 								{ | |
| 									"ref": "r_lf", | |
| 									"value": "lf" | |
| 								}, | |
| 								{ | |
| 									"ref": "r_ab", | |
| 									"value": "ab" | |
| 								}, | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 1 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "get_k", | |
| 					"guard": { | |
| 						"op": "!", | |
| 						"args": [ | |
| 							"ff" | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_2", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "premature_timeout", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 2 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "tick", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0" | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "put_l", | |
| 					"guard": { | |
| 						"op": "≠", | |
| 						"args": [ | |
| 							"r_ab", | |
| 							"bit" | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_3", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 3 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "r_ok", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							"r_lf", | |
| 							{ | |
| 								"op": "=", | |
| 								"args": [ | |
| 									"r_ab", | |
| 									"bit" | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_4", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 4 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "r_fst", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							{ | |
| 								"op": "∧", | |
| 								"args": [ | |
| 									"r_ff", | |
| 									{ | |
| 										"op": "!", | |
| 										"args": [ | |
| 											"r_lf" | |
| 										] | |
| 									} | |
| 								] | |
| 							}, | |
| 							{ | |
| 								"op": "=", | |
| 								"args": [ | |
| 									"r_ab", | |
| 									"bit" | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_4", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 4 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "r_inc", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							{ | |
| 								"op": "∧", | |
| 								"args": [ | |
| 									{ | |
| 										"op": "!", | |
| 										"args": [ | |
| 											"r_ff" | |
| 										] | |
| 									}, | |
| 									{ | |
| 										"op": "!", | |
| 										"args": [ | |
| 											"r_lf" | |
| 										] | |
| 									} | |
| 								] | |
| 							}, | |
| 							{ | |
| 								"op": "=", | |
| 								"args": [ | |
| 									"r_ab", | |
| 									"bit" | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_4", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 4 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							0 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_2", | |
| 					"action": "tick", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_2" | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"action": "get_k", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "r_ff", | |
| 									"value": "ff" | |
| 								}, | |
| 								{ | |
| 									"ref": "r_lf", | |
| 									"value": "lf" | |
| 								}, | |
| 								{ | |
| 									"ref": "r_ab", | |
| 									"value": "ab" | |
| 								}, | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 1 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"action": "r_timeout", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							"r_lf", | |
| 							{ | |
| 								"op": "=", | |
| 								"args": [ | |
| 									"c", | |
| 									15 | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_5", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 5 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"action": "r_nok", | |
| 					"guard": { | |
| 						"op": "∧", | |
| 						"args": [ | |
| 							{ | |
| 								"op": "!", | |
| 								"args": [ | |
| 									"r_lf" | |
| 								] | |
| 							}, | |
| 							{ | |
| 								"op": "=", | |
| 								"args": [ | |
| 									"c", | |
| 									15 | |
| 								] | |
| 							} | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_6", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 6 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_3", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							15 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_3", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_4", | |
| 					"action": "put_l", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_3", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "bit", | |
| 									"value": { | |
| 										"op": "!", | |
| 										"args": [ | |
| 											"bit" | |
| 										] | |
| 									} | |
| 								}, | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 3 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_4", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							0 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_4", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_5", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "r_ff", | |
| 									"value": false | |
| 								}, | |
| 								{ | |
| 									"ref": "r_lf", | |
| 									"value": false | |
| 								}, | |
| 								{ | |
| 									"ref": "r_ab", | |
| 									"value": false | |
| 								}, | |
| 								{ | |
| 									"ref": "bit", | |
| 									"value": false | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_5", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							15 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_5", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_6", | |
| 					"action": "r_timeout", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_5", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "Receiver_location", | |
| 									"value": 5 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_6", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							15 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_6", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											16 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				} | |
| 			] | |
| 		}, | |
| 		{ | |
| 			"name": "ChannelK", | |
| 			"variables": [ | |
| 				{ | |
| 					"name": "c", | |
| 					"type": { | |
| 						"kind": "bounded", | |
| 						"base": "int", | |
| 						"lower-bound": 0, | |
| 						"upper-bound": 2 | |
| 					}, | |
| 					"initial-value": 0 | |
| 				} | |
| 			], | |
| 			"locations": [ | |
| 				{ | |
| 					"name": "l_0" | |
| 				}, | |
| 				{ | |
| 					"name": "l_1" | |
| 				}, | |
| 				{ | |
| 					"name": "l_2" | |
| 				} | |
| 			], | |
| 			"initial-location": "l_0", | |
| 			"edges": [ | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "put_k", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": { | |
| 								"op": "/", | |
| 								"args": [ | |
| 									49, | |
| 									50 | |
| 								] | |
| 							}, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "inTransitK", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "ChannelK_location", | |
| 									"value": 1 | |
| 								} | |
| 							] | |
| 						}, | |
| 						{ | |
| 							"probability": { | |
| 								"op": "/", | |
| 								"args": [ | |
| 									1, | |
| 									50 | |
| 								] | |
| 							}, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "ChannelK_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "tick", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0" | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "get_k", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "inTransitK", | |
| 									"value": false | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "ChannelK_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "put_k", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_2", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "channel_k_overflow", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "ChannelK_location", | |
| 									"value": 2 | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							1 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											2 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_2", | |
| 					"action": "tick", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_2" | |
| 						} | |
| 					] | |
| 				} | |
| 			] | |
| 		}, | |
| 		{ | |
| 			"name": "ChannelL", | |
| 			"variables": [ | |
| 				{ | |
| 					"name": "c", | |
| 					"type": { | |
| 						"kind": "bounded", | |
| 						"base": "int", | |
| 						"lower-bound": 0, | |
| 						"upper-bound": 2 | |
| 					}, | |
| 					"initial-value": 0 | |
| 				} | |
| 			], | |
| 			"locations": [ | |
| 				{ | |
| 					"name": "l_0" | |
| 				}, | |
| 				{ | |
| 					"name": "l_1" | |
| 				}, | |
| 				{ | |
| 					"name": "l_2" | |
| 				} | |
| 			], | |
| 			"initial-location": "l_0", | |
| 			"edges": [ | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "put_l", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": { | |
| 								"op": "/", | |
| 								"args": [ | |
| 									99, | |
| 									100 | |
| 								] | |
| 							}, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "inTransitL", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "ChannelL_location", | |
| 									"value": 1 | |
| 								} | |
| 							] | |
| 						}, | |
| 						{ | |
| 							"probability": { | |
| 								"op": "/", | |
| 								"args": [ | |
| 									1, | |
| 									100 | |
| 								] | |
| 							}, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "ChannelL_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "tick", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0" | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "get_l", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "inTransitL", | |
| 									"value": false | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								}, | |
| 								{ | |
| 									"ref": "ChannelL_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "put_l", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_2", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "channel_l_overflow", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "ChannelL_location", | |
| 									"value": 2 | |
| 								}, | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_1", | |
| 					"action": "tick", | |
| 					"guard": { | |
| 						"op": "<", | |
| 						"args": [ | |
| 							"c", | |
| 							1 | |
| 						] | |
| 					}, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_1", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "c", | |
| 									"value": { | |
| 										"op": "min", | |
| 										"args": [ | |
| 											{ | |
| 												"op": "+", | |
| 												"args": [ | |
| 													"c", | |
| 													1 | |
| 												] | |
| 											}, | |
| 											2 | |
| 										] | |
| 									} | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_2", | |
| 					"action": "tick", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_2" | |
| 						} | |
| 					] | |
| 				} | |
| 			] | |
| 		}, | |
| 		{ | |
| 			"name": "Observer", | |
| 			"variables": [], | |
| 			"locations": [ | |
| 				{ | |
| 					"name": "l_0" | |
| 				} | |
| 			], | |
| 			"initial-location": "l_0", | |
| 			"edges": [ | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "get_k", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "get_k_seen", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Observer_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "s_ok", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "s_ok_seen", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Observer_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "s_nok", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "s_nok_seen", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Observer_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "s_dk", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "s_dk_seen", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Observer_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "s_restart", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "s_restart_seen", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Observer_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "r_ok", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "r_ok_seen", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Observer_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "r_timeout", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0", | |
| 							"assignments": [ | |
| 								{ | |
| 									"ref": "r_timeout_seen", | |
| 									"value": true | |
| 								}, | |
| 								{ | |
| 									"ref": "Observer_location", | |
| 									"value": 0 | |
| 								} | |
| 							] | |
| 						} | |
| 					] | |
| 				}, | |
| 				{ | |
| 					"location": "l_0", | |
| 					"action": "tick", | |
| 					"guard": true, | |
| 					"destinations": [ | |
| 						{ | |
| 							"probability": 1, | |
| 							"location": "l_0" | |
| 						} | |
| 					] | |
| 				} | |
| 			] | |
| 		} | |
| 	], | |
| 	"system": { | |
| 		"composition": "parallel", | |
| 		"elements": [ | |
| 			{ | |
| 				"composition": "parallel", | |
| 				"elements": [ | |
| 					{ | |
| 						"composition": "parallel", | |
| 						"elements": [ | |
| 							{ | |
| 								"composition": "parallel", | |
| 								"elements": [ | |
| 									"Sender", | |
| 									"Receiver" | |
| 								], | |
| 								"alphabet": [ | |
| 									"tick" | |
| 								] | |
| 							}, | |
| 							"ChannelK" | |
| 						], | |
| 						"alphabet": [ | |
| 							"put_k", | |
| 							"get_k", | |
| 							"tick" | |
| 						] | |
| 					}, | |
| 					"ChannelL" | |
| 				], | |
| 				"alphabet": [ | |
| 					"get_l", | |
| 					"put_l", | |
| 					"tick" | |
| 				] | |
| 			}, | |
| 			"Observer" | |
| 		], | |
| 		"alphabet": [ | |
| 			"s_nok", | |
| 			"s_dk", | |
| 			"s_ok", | |
| 			"s_restart", | |
| 			"get_k", | |
| 			"r_ok", | |
| 			"r_timeout", | |
| 			"tick" | |
| 		] | |
| 	} | |
| } |