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.

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