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.

683 lines
21 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":"e1"
  11. },
  12. {
  13. "name":"e2"
  14. },
  15. {
  16. "name":"e3"
  17. },
  18. {
  19. "name":"e4"
  20. }
  21. ],
  22. "constants":[
  23. {
  24. "name":"N1",
  25. "type":"int"
  26. },
  27. {
  28. "name":"N2",
  29. "type":"int"
  30. },
  31. {
  32. "name":"N3",
  33. "type":"int"
  34. }
  35. ],
  36. "variables":[
  37. {
  38. "name":"na",
  39. "type":{
  40. "kind":"bounded",
  41. "base":"int",
  42. "lower-bound":0,
  43. "upper-bound":"N1"
  44. }
  45. },
  46. {
  47. "name":"cl",
  48. "type":{
  49. "kind":"bounded",
  50. "base":"int",
  51. "lower-bound":0,
  52. "upper-bound":"N2"
  53. }
  54. },
  55. {
  56. "name":"k",
  57. "type":{
  58. "kind":"bounded",
  59. "base":"int",
  60. "lower-bound":0,
  61. "upper-bound":"N3"
  62. }
  63. },
  64. {
  65. "name":"dummy",
  66. "type":"bool"
  67. }
  68. ],
  69. "observables":[
  70. {
  71. "name":"\"percentage_na\""
  72. },
  73. {
  74. "name":"\"percentage_k\""
  75. }
  76. ],
  77. "initial-states":{
  78. "exp":{
  79. "op":"∧",
  80. "left":{
  81. "op":"∧",
  82. "left":{
  83. "op":"∧",
  84. "left":{
  85. "op":"=",
  86. "left":"na",
  87. "right":"N1"
  88. },
  89. "right":{
  90. "op":"=",
  91. "left":"cl",
  92. "right":"N2"
  93. }
  94. },
  95. "right":{
  96. "op":"=",
  97. "left":"k",
  98. "right":"N3"
  99. }
  100. },
  101. "right":{
  102. "op":"=",
  103. "left":"dummy",
  104. "right":false
  105. }
  106. }
  107. },
  108. "automata":[
  109. {
  110. "name":"na",
  111. "locations":[
  112. {
  113. "name":"location",
  114. "observables":[
  115. {
  116. "ref":"\"percentage_na\"",
  117. "value":{
  118. "op":"/",
  119. "left":{
  120. "op":"*",
  121. "left":100,
  122. "right":"na"
  123. },
  124. "right":"N1"
  125. }
  126. },
  127. {
  128. "ref":"\"percentage_k\"",
  129. "value":{
  130. "op":"/",
  131. "left":{
  132. "op":"*",
  133. "left":100,
  134. "right":"k"
  135. },
  136. "right":"N3"
  137. }
  138. }
  139. ]
  140. }
  141. ],
  142. "initial-locations":[
  143. "location"
  144. ],
  145. "edges":[
  146. {
  147. "location":"location",
  148. "action":"e1",
  149. "rate":{
  150. "exp":"na"
  151. },
  152. "guard":{
  153. "exp":{
  154. "op":">",
  155. "left":"na",
  156. "right":0
  157. }
  158. },
  159. "destinations":[
  160. {
  161. "probability":{
  162. "exp":{
  163. "op":"/",
  164. "left":"na",
  165. "right":"na"
  166. }
  167. },
  168. "location":"location",
  169. "assignments":[
  170. {
  171. "ref":"na",
  172. "value":{
  173. "op":"-",
  174. "left":"na",
  175. "right":1
  176. }
  177. }
  178. ],
  179. "observables":[
  180. ]
  181. }
  182. ]
  183. },
  184. {
  185. "location":"location",
  186. "action":"e2",
  187. "rate":{
  188. "exp":{
  189. "op":"-",
  190. "left":"N1",
  191. "right":"na"
  192. }
  193. },
  194. "guard":{
  195. "exp":{
  196. "op":"<",
  197. "left":"na",
  198. "right":"N1"
  199. }
  200. },
  201. "destinations":[
  202. {
  203. "probability":{
  204. "exp":{
  205. "op":"/",
  206. "left":{
  207. "op":"-",
  208. "left":"N1",
  209. "right":"na"
  210. },
  211. "right":{
  212. "op":"-",
  213. "left":"N1",
  214. "right":"na"
  215. }
  216. }
  217. },
  218. "location":"location",
  219. "assignments":[
  220. {
  221. "ref":"na",
  222. "value":{
  223. "op":"+",
  224. "left":"na",
  225. "right":1
  226. }
  227. }
  228. ],
  229. "observables":[
  230. ]
  231. }
  232. ]
  233. }
  234. ]
  235. },
  236. {
  237. "name":"cl",
  238. "locations":[
  239. {
  240. "name":"location"
  241. }
  242. ],
  243. "initial-locations":[
  244. "location"
  245. ],
  246. "edges":[
  247. {
  248. "location":"location",
  249. "action":"e1",
  250. "rate":{
  251. "exp":"cl"
  252. },
  253. "guard":{
  254. "exp":{
  255. "op":">",
  256. "left":"cl",
  257. "right":0
  258. }
  259. },
  260. "destinations":[
  261. {
  262. "probability":{
  263. "exp":{
  264. "op":"/",
  265. "left":"cl",
  266. "right":"cl"
  267. }
  268. },
  269. "location":"location",
  270. "assignments":[
  271. {
  272. "ref":"cl",
  273. "value":{
  274. "op":"-",
  275. "left":"cl",
  276. "right":1
  277. }
  278. }
  279. ]
  280. }
  281. ]
  282. },
  283. {
  284. "location":"location",
  285. "action":"e3",
  286. "rate":{
  287. "exp":"cl"
  288. },
  289. "guard":{
  290. "exp":{
  291. "op":">",
  292. "left":"cl",
  293. "right":0
  294. }
  295. },
  296. "destinations":[
  297. {
  298. "probability":{
  299. "exp":{
  300. "op":"/",
  301. "left":"cl",
  302. "right":"cl"
  303. }
  304. },
  305. "location":"location",
  306. "assignments":[
  307. {
  308. "ref":"cl",
  309. "value":{
  310. "op":"-",
  311. "left":"cl",
  312. "right":1
  313. }
  314. }
  315. ],
  316. "observables":[
  317. ]
  318. }
  319. ]
  320. },
  321. {
  322. "location":"location",
  323. "action":"e2",
  324. "rate":{
  325. "exp":{
  326. "op":"-",
  327. "left":"N2",
  328. "right":"cl"
  329. }
  330. },
  331. "guard":{
  332. "exp":{
  333. "op":"<",
  334. "left":"cl",
  335. "right":"N2"
  336. }
  337. },
  338. "destinations":[
  339. {
  340. "probability":{
  341. "exp":{
  342. "op":"/",
  343. "left":{
  344. "op":"-",
  345. "left":"N2",
  346. "right":"cl"
  347. },
  348. "right":{
  349. "op":"-",
  350. "left":"N2",
  351. "right":"cl"
  352. }
  353. }
  354. },
  355. "location":"location",
  356. "assignments":[
  357. {
  358. "ref":"cl",
  359. "value":{
  360. "op":"+",
  361. "left":"cl",
  362. "right":1
  363. }
  364. }
  365. ]
  366. }
  367. ]
  368. },
  369. {
  370. "location":"location",
  371. "action":"e4",
  372. "rate":{
  373. "exp":{
  374. "op":"-",
  375. "left":"N2",
  376. "right":"cl"
  377. }
  378. },
  379. "guard":{
  380. "exp":{
  381. "op":"<",
  382. "left":"cl",
  383. "right":"N2"
  384. }
  385. },
  386. "destinations":[
  387. {
  388. "probability":{
  389. "exp":{
  390. "op":"/",
  391. "left":{
  392. "op":"-",
  393. "left":"N2",
  394. "right":"cl"
  395. },
  396. "right":{
  397. "op":"-",
  398. "left":"N2",
  399. "right":"cl"
  400. }
  401. }
  402. },
  403. "location":"location",
  404. "assignments":[
  405. {
  406. "ref":"cl",
  407. "value":{
  408. "op":"+",
  409. "left":"cl",
  410. "right":1
  411. }
  412. }
  413. ],
  414. "observables":[
  415. ]
  416. }
  417. ]
  418. }
  419. ]
  420. },
  421. {
  422. "name":"k",
  423. "locations":[
  424. {
  425. "name":"location"
  426. }
  427. ],
  428. "initial-locations":[
  429. "location"
  430. ],
  431. "edges":[
  432. {
  433. "location":"location",
  434. "action":"e3",
  435. "rate":{
  436. "exp":"k"
  437. },
  438. "guard":{
  439. "exp":{
  440. "op":">",
  441. "left":"k",
  442. "right":0
  443. }
  444. },
  445. "destinations":[
  446. {
  447. "probability":{
  448. "exp":{
  449. "op":"/",
  450. "left":"k",
  451. "right":"k"
  452. }
  453. },
  454. "location":"location",
  455. "assignments":[
  456. {
  457. "ref":"k",
  458. "value":{
  459. "op":"-",
  460. "left":"k",
  461. "right":1
  462. }
  463. }
  464. ]
  465. }
  466. ]
  467. },
  468. {
  469. "location":"location",
  470. "action":"e4",
  471. "rate":{
  472. "exp":{
  473. "op":"-",
  474. "left":"N3",
  475. "right":"k"
  476. }
  477. },
  478. "guard":{
  479. "exp":{
  480. "op":"<",
  481. "left":"k",
  482. "right":"N3"
  483. }
  484. },
  485. "destinations":[
  486. {
  487. "probability":{
  488. "exp":{
  489. "op":"/",
  490. "left":{
  491. "op":"-",
  492. "left":"N3",
  493. "right":"k"
  494. },
  495. "right":{
  496. "op":"-",
  497. "left":"N3",
  498. "right":"k"
  499. }
  500. }
  501. },
  502. "location":"location",
  503. "assignments":[
  504. {
  505. "ref":"k",
  506. "value":{
  507. "op":"+",
  508. "left":"k",
  509. "right":1
  510. }
  511. }
  512. ]
  513. }
  514. ]
  515. }
  516. ]
  517. },
  518. {
  519. "name":"base_rates",
  520. "locations":[
  521. {
  522. "name":"location"
  523. }
  524. ],
  525. "initial-locations":[
  526. "location"
  527. ],
  528. "edges":[
  529. {
  530. "location":"location",
  531. "action":"e1",
  532. "rate":{
  533. "exp":100
  534. },
  535. "guard":{
  536. "exp":true
  537. },
  538. "destinations":[
  539. {
  540. "probability":{
  541. "exp":{
  542. "op":"/",
  543. "left":100,
  544. "right":100
  545. }
  546. },
  547. "location":"location",
  548. "assignments":[
  549. ]
  550. }
  551. ]
  552. },
  553. {
  554. "location":"location",
  555. "action":"e2",
  556. "rate":{
  557. "exp":10
  558. },
  559. "guard":{
  560. "exp":true
  561. },
  562. "destinations":[
  563. {
  564. "probability":{
  565. "exp":{
  566. "op":"/",
  567. "left":10,
  568. "right":10
  569. }
  570. },
  571. "location":"location",
  572. "assignments":[
  573. ]
  574. }
  575. ]
  576. },
  577. {
  578. "location":"location",
  579. "action":"e3",
  580. "rate":{
  581. "exp":30
  582. },
  583. "guard":{
  584. "exp":true
  585. },
  586. "destinations":[
  587. {
  588. "probability":{
  589. "exp":{
  590. "op":"/",
  591. "left":30,
  592. "right":30
  593. }
  594. },
  595. "location":"location",
  596. "assignments":[
  597. ]
  598. }
  599. ]
  600. },
  601. {
  602. "location":"location",
  603. "action":"e4",
  604. "rate":{
  605. "exp":20
  606. },
  607. "guard":{
  608. "exp":true
  609. },
  610. "destinations":[
  611. {
  612. "probability":{
  613. "exp":{
  614. "op":"/",
  615. "left":20,
  616. "right":20
  617. }
  618. },
  619. "location":"location",
  620. "assignments":[
  621. ]
  622. }
  623. ]
  624. }
  625. ]
  626. }
  627. ],
  628. "system":{
  629. "elements":[
  630. {
  631. "automaton":"na"
  632. },
  633. {
  634. "automaton":"cl"
  635. },
  636. {
  637. "automaton":"k"
  638. },
  639. {
  640. "automaton":"base_rates"
  641. }
  642. ],
  643. "syncs":[
  644. {
  645. "synchronise":[
  646. null,
  647. "e3",
  648. "e3",
  649. "e3"
  650. ],
  651. "result":"e3"
  652. },
  653. {
  654. "synchronise":[
  655. null,
  656. "e4",
  657. "e4",
  658. "e4"
  659. ],
  660. "result":"e4"
  661. },
  662. {
  663. "synchronise":[
  664. "e1",
  665. "e1",
  666. null,
  667. "e1"
  668. ],
  669. "result":"e1"
  670. },
  671. {
  672. "synchronise":[
  673. "e2",
  674. "e2",
  675. null,
  676. "e2"
  677. ],
  678. "result":"e2"
  679. }
  680. ]
  681. }
  682. }