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.

437 lines
14 KiB

  1. {
  2. "jani-version":1,
  3. "features":[
  4. "derived-operators"
  5. ],
  6. "name":"Converted from PRISM by IscasMC",
  7. "type":"ctmc",
  8. "actions":[
  9. {
  10. "name":"tau__"
  11. },
  12. {
  13. "name":"route"
  14. }
  15. ],
  16. "constants":[
  17. {
  18. "name":"c",
  19. "type":"int"
  20. }
  21. ],
  22. "variables":[
  23. {
  24. "name":"sc",
  25. "type":{
  26. "kind":"bounded",
  27. "base":"int",
  28. "lower-bound":0,
  29. "upper-bound":"c"
  30. }
  31. },
  32. {
  33. "name":"ph",
  34. "type":{
  35. "kind":"bounded",
  36. "base":"int",
  37. "lower-bound":1,
  38. "upper-bound":2
  39. }
  40. },
  41. {
  42. "name":"sm",
  43. "type":{
  44. "kind":"bounded",
  45. "base":"int",
  46. "lower-bound":0,
  47. "upper-bound":"c"
  48. }
  49. }
  50. ],
  51. "observables":[
  52. {
  53. "name":"\"customers\""
  54. }
  55. ],
  56. "initial-states":{
  57. "exp":{
  58. "op":"∧",
  59. "left":{
  60. "op":"∧",
  61. "left":{
  62. "op":"=",
  63. "left":"sc",
  64. "right":0
  65. },
  66. "right":{
  67. "op":"=",
  68. "left":"ph",
  69. "right":1
  70. }
  71. },
  72. "right":{
  73. "op":"=",
  74. "left":"sm",
  75. "right":0
  76. }
  77. }
  78. },
  79. "automata":[
  80. {
  81. "name":"serverC",
  82. "locations":[
  83. {
  84. "name":"location",
  85. "observables":[
  86. {
  87. "ref":"\"customers\"",
  88. "value":{
  89. "op":"+",
  90. "left":"sc",
  91. "right":"sm"
  92. }
  93. }
  94. ]
  95. }
  96. ],
  97. "initial-locations":[
  98. "location"
  99. ],
  100. "edges":[
  101. {
  102. "location":"location",
  103. "action":"tau__",
  104. "rate":{
  105. "exp":{
  106. "op":"*",
  107. "left":4,
  108. "right":"c"
  109. }
  110. },
  111. "guard":{
  112. "exp":{
  113. "op":"<",
  114. "left":"sc",
  115. "right":"c"
  116. }
  117. },
  118. "destinations":[
  119. {
  120. "probability":{
  121. "exp":{
  122. "op":"/",
  123. "left":{
  124. "op":"*",
  125. "left":4,
  126. "right":"c"
  127. },
  128. "right":{
  129. "op":"*",
  130. "left":4,
  131. "right":"c"
  132. }
  133. }
  134. },
  135. "location":"location",
  136. "assignments":[
  137. {
  138. "ref":"sc",
  139. "value":{
  140. "op":"+",
  141. "left":"sc",
  142. "right":1
  143. }
  144. }
  145. ],
  146. "observables":[
  147. ]
  148. }
  149. ]
  150. },
  151. {
  152. "location":"location",
  153. "action":"route",
  154. "rate":{
  155. "exp":{
  156. "op":"*",
  157. "left":0.9000000,
  158. "right":2
  159. }
  160. },
  161. "guard":{
  162. "exp":{
  163. "op":"∧",
  164. "left":{
  165. "op":">",
  166. "left":"sc",
  167. "right":0
  168. },
  169. "right":{
  170. "op":"=",
  171. "left":"ph",
  172. "right":1
  173. }
  174. }
  175. },
  176. "destinations":[
  177. {
  178. "probability":{
  179. "exp":{
  180. "op":"/",
  181. "left":{
  182. "op":"*",
  183. "left":0.9000000,
  184. "right":2
  185. },
  186. "right":{
  187. "op":"*",
  188. "left":0.9000000,
  189. "right":2
  190. }
  191. }
  192. },
  193. "location":"location",
  194. "assignments":[
  195. {
  196. "ref":"sc",
  197. "value":{
  198. "op":"-",
  199. "left":"sc",
  200. "right":1
  201. }
  202. }
  203. ],
  204. "observables":[
  205. ]
  206. }
  207. ]
  208. },
  209. {
  210. "location":"location",
  211. "action":"tau__",
  212. "rate":{
  213. "exp":{
  214. "op":"*",
  215. "left":0.1000000,
  216. "right":2
  217. }
  218. },
  219. "guard":{
  220. "exp":{
  221. "op":"∧",
  222. "left":{
  223. "op":">",
  224. "left":"sc",
  225. "right":0
  226. },
  227. "right":{
  228. "op":"=",
  229. "left":"ph",
  230. "right":1
  231. }
  232. }
  233. },
  234. "destinations":[
  235. {
  236. "probability":{
  237. "exp":{
  238. "op":"/",
  239. "left":{
  240. "op":"*",
  241. "left":0.1000000,
  242. "right":2
  243. },
  244. "right":{
  245. "op":"*",
  246. "left":0.1000000,
  247. "right":2
  248. }
  249. }
  250. },
  251. "location":"location",
  252. "assignments":[
  253. {
  254. "ref":"ph",
  255. "value":2
  256. }
  257. ],
  258. "observables":[
  259. ]
  260. }
  261. ]
  262. },
  263. {
  264. "location":"location",
  265. "action":"route",
  266. "rate":{
  267. "exp":2
  268. },
  269. "guard":{
  270. "exp":{
  271. "op":"∧",
  272. "left":{
  273. "op":">",
  274. "left":"sc",
  275. "right":0
  276. },
  277. "right":{
  278. "op":"=",
  279. "left":"ph",
  280. "right":2
  281. }
  282. }
  283. },
  284. "destinations":[
  285. {
  286. "probability":{
  287. "exp":{
  288. "op":"/",
  289. "left":2,
  290. "right":2
  291. }
  292. },
  293. "location":"location",
  294. "assignments":[
  295. {
  296. "ref":"ph",
  297. "value":1
  298. },
  299. {
  300. "ref":"sc",
  301. "value":{
  302. "op":"-",
  303. "left":"sc",
  304. "right":1
  305. }
  306. }
  307. ],
  308. "observables":[
  309. ]
  310. }
  311. ]
  312. }
  313. ]
  314. },
  315. {
  316. "name":"serverM",
  317. "locations":[
  318. {
  319. "name":"location"
  320. }
  321. ],
  322. "initial-locations":[
  323. "location"
  324. ],
  325. "edges":[
  326. {
  327. "location":"location",
  328. "action":"route",
  329. "rate":{
  330. "exp":1
  331. },
  332. "guard":{
  333. "exp":{
  334. "op":"<",
  335. "left":"sm",
  336. "right":"c"
  337. }
  338. },
  339. "destinations":[
  340. {
  341. "probability":{
  342. "exp":{
  343. "op":"/",
  344. "left":1,
  345. "right":1
  346. }
  347. },
  348. "location":"location",
  349. "assignments":[
  350. {
  351. "ref":"sm",
  352. "value":{
  353. "op":"+",
  354. "left":"sm",
  355. "right":1
  356. }
  357. }
  358. ]
  359. }
  360. ]
  361. },
  362. {
  363. "location":"location",
  364. "action":"tau__",
  365. "rate":{
  366. "exp":4
  367. },
  368. "guard":{
  369. "exp":{
  370. "op":">",
  371. "left":"sm",
  372. "right":0
  373. }
  374. },
  375. "destinations":[
  376. {
  377. "probability":{
  378. "exp":{
  379. "op":"/",
  380. "left":4,
  381. "right":4
  382. }
  383. },
  384. "location":"location",
  385. "assignments":[
  386. {
  387. "ref":"sm",
  388. "value":{
  389. "op":"-",
  390. "left":"sm",
  391. "right":1
  392. }
  393. }
  394. ],
  395. "observables":[
  396. ]
  397. }
  398. ]
  399. }
  400. ]
  401. }
  402. ],
  403. "system":{
  404. "elements":[
  405. {
  406. "automaton":"serverC"
  407. },
  408. {
  409. "automaton":"serverM"
  410. }
  411. ],
  412. "syncs":[
  413. {
  414. "synchronise":[
  415. "route",
  416. "route"
  417. ],
  418. "result":"route"
  419. },
  420. {
  421. "synchronise":[
  422. "tau__",
  423. null
  424. ],
  425. "result":"tau__"
  426. },
  427. {
  428. "synchronise":[
  429. null,
  430. "tau__"
  431. ],
  432. "result":"tau__"
  433. }
  434. ]
  435. }
  436. }