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.

2047 lines
72 KiB

  1. {
  2. "jani-version":1,
  3. "features":[
  4. "derived-operators"
  5. ],
  6. "name":"Converted from PRISM by IscasMC",
  7. "type":"dtmc",
  8. "actions":[
  9. {
  10. "name":"read"
  11. },
  12. {
  13. "name":"done"
  14. },
  15. {
  16. "name":"retry"
  17. },
  18. {
  19. "name":"loop"
  20. },
  21. {
  22. "name":"pick"
  23. }
  24. ],
  25. "variables":[
  26. {
  27. "name":"c",
  28. "type":{
  29. "kind":"bounded",
  30. "base":"int",
  31. "lower-bound":1,
  32. "upper-bound":{
  33. "op":"-",
  34. "left":3,
  35. "right":1
  36. }
  37. }
  38. },
  39. {
  40. "name":"s1",
  41. "type":{
  42. "kind":"bounded",
  43. "base":"int",
  44. "lower-bound":0,
  45. "upper-bound":3
  46. }
  47. },
  48. {
  49. "name":"u1",
  50. "type":"bool"
  51. },
  52. {
  53. "name":"v1",
  54. "type":{
  55. "kind":"bounded",
  56. "base":"int",
  57. "lower-bound":0,
  58. "upper-bound":{
  59. "op":"-",
  60. "left":6,
  61. "right":1
  62. }
  63. }
  64. },
  65. {
  66. "name":"p1",
  67. "type":{
  68. "kind":"bounded",
  69. "base":"int",
  70. "lower-bound":0,
  71. "upper-bound":{
  72. "op":"-",
  73. "left":6,
  74. "right":1
  75. }
  76. }
  77. },
  78. {
  79. "name":"s2",
  80. "type":{
  81. "kind":"bounded",
  82. "base":"int",
  83. "lower-bound":0,
  84. "upper-bound":3
  85. }
  86. },
  87. {
  88. "name":"u2",
  89. "type":"bool"
  90. },
  91. {
  92. "name":"v2",
  93. "type":{
  94. "kind":"bounded",
  95. "base":"int",
  96. "lower-bound":0,
  97. "upper-bound":{
  98. "op":"-",
  99. "left":6,
  100. "right":1
  101. }
  102. }
  103. },
  104. {
  105. "name":"p2",
  106. "type":{
  107. "kind":"bounded",
  108. "base":"int",
  109. "lower-bound":0,
  110. "upper-bound":{
  111. "op":"-",
  112. "left":6,
  113. "right":1
  114. }
  115. }
  116. },
  117. {
  118. "name":"s3",
  119. "type":{
  120. "kind":"bounded",
  121. "base":"int",
  122. "lower-bound":0,
  123. "upper-bound":3
  124. }
  125. },
  126. {
  127. "name":"u3",
  128. "type":"bool"
  129. },
  130. {
  131. "name":"v3",
  132. "type":{
  133. "kind":"bounded",
  134. "base":"int",
  135. "lower-bound":0,
  136. "upper-bound":{
  137. "op":"-",
  138. "left":6,
  139. "right":1
  140. }
  141. }
  142. },
  143. {
  144. "name":"p3",
  145. "type":{
  146. "kind":"bounded",
  147. "base":"int",
  148. "lower-bound":0,
  149. "upper-bound":{
  150. "op":"-",
  151. "left":6,
  152. "right":1
  153. }
  154. }
  155. }
  156. ],
  157. "observables":[
  158. {
  159. "name":"\"num_rounds\""
  160. }
  161. ],
  162. "initial-states":{
  163. "exp":{
  164. "op":"∧",
  165. "left":{
  166. "op":"∧",
  167. "left":{
  168. "op":"∧",
  169. "left":{
  170. "op":"∧",
  171. "left":{
  172. "op":"∧",
  173. "left":{
  174. "op":"∧",
  175. "left":{
  176. "op":"∧",
  177. "left":{
  178. "op":"∧",
  179. "left":{
  180. "op":"∧",
  181. "left":{
  182. "op":"∧",
  183. "left":{
  184. "op":"∧",
  185. "left":{
  186. "op":"∧",
  187. "left":{
  188. "op":"=",
  189. "left":"c",
  190. "right":1
  191. },
  192. "right":{
  193. "op":"=",
  194. "left":"s1",
  195. "right":0
  196. }
  197. },
  198. "right":{
  199. "op":"=",
  200. "left":"u1",
  201. "right":false
  202. }
  203. },
  204. "right":{
  205. "op":"=",
  206. "left":"v1",
  207. "right":0
  208. }
  209. },
  210. "right":{
  211. "op":"=",
  212. "left":"p1",
  213. "right":0
  214. }
  215. },
  216. "right":{
  217. "op":"=",
  218. "left":"s2",
  219. "right":0
  220. }
  221. },
  222. "right":{
  223. "op":"=",
  224. "left":"u2",
  225. "right":false
  226. }
  227. },
  228. "right":{
  229. "op":"=",
  230. "left":"v2",
  231. "right":0
  232. }
  233. },
  234. "right":{
  235. "op":"=",
  236. "left":"p2",
  237. "right":0
  238. }
  239. },
  240. "right":{
  241. "op":"=",
  242. "left":"s3",
  243. "right":0
  244. }
  245. },
  246. "right":{
  247. "op":"=",
  248. "left":"u3",
  249. "right":false
  250. }
  251. },
  252. "right":{
  253. "op":"=",
  254. "left":"v3",
  255. "right":0
  256. }
  257. },
  258. "right":{
  259. "op":"=",
  260. "left":"p3",
  261. "right":0
  262. }
  263. }
  264. },
  265. "automata":[
  266. {
  267. "name":"counter",
  268. "locations":[
  269. {
  270. "name":"location"
  271. }
  272. ],
  273. "initial-locations":[
  274. "location"
  275. ],
  276. "edges":[
  277. {
  278. "location":"location",
  279. "action":"read",
  280. "guard":{
  281. "exp":{
  282. "op":"<",
  283. "left":"c",
  284. "right":{
  285. "op":"-",
  286. "left":3,
  287. "right":1
  288. }
  289. }
  290. },
  291. "destinations":[
  292. {
  293. "probability":{
  294. "exp":1
  295. },
  296. "location":"location",
  297. "assignments":[
  298. {
  299. "ref":"c",
  300. "value":{
  301. "op":"+",
  302. "left":"c",
  303. "right":1
  304. }
  305. }
  306. ],
  307. "observables":[
  308. ]
  309. }
  310. ]
  311. },
  312. {
  313. "location":"location",
  314. "action":"read",
  315. "guard":{
  316. "exp":{
  317. "op":"=",
  318. "left":"c",
  319. "right":{
  320. "op":"-",
  321. "left":3,
  322. "right":1
  323. }
  324. }
  325. },
  326. "destinations":[
  327. {
  328. "probability":{
  329. "exp":1
  330. },
  331. "location":"location",
  332. "assignments":[
  333. {
  334. "ref":"c",
  335. "value":"c"
  336. }
  337. ],
  338. "observables":[
  339. ]
  340. }
  341. ]
  342. },
  343. {
  344. "location":"location",
  345. "action":"done",
  346. "guard":{
  347. "exp":{
  348. "op":"∨",
  349. "left":{
  350. "op":"∨",
  351. "left":"u1",
  352. "right":"u2"
  353. },
  354. "right":"u3"
  355. }
  356. },
  357. "destinations":[
  358. {
  359. "probability":{
  360. "exp":1
  361. },
  362. "location":"location",
  363. "assignments":[
  364. {
  365. "ref":"c",
  366. "value":"c"
  367. }
  368. ],
  369. "observables":[
  370. ]
  371. }
  372. ]
  373. },
  374. {
  375. "location":"location",
  376. "action":"retry",
  377. "guard":{
  378. "exp":{
  379. "op":"¬",
  380. "exp":{
  381. "op":"∨",
  382. "left":{
  383. "op":"∨",
  384. "left":"u1",
  385. "right":"u2"
  386. },
  387. "right":"u3"
  388. }
  389. }
  390. },
  391. "destinations":[
  392. {
  393. "probability":{
  394. "exp":1
  395. },
  396. "location":"location",
  397. "assignments":[
  398. {
  399. "ref":"c",
  400. "value":1
  401. }
  402. ],
  403. "observables":[
  404. ]
  405. }
  406. ]
  407. },
  408. {
  409. "location":"location",
  410. "action":"loop",
  411. "guard":{
  412. "exp":{
  413. "op":"=",
  414. "left":"s1",
  415. "right":3
  416. }
  417. },
  418. "destinations":[
  419. {
  420. "probability":{
  421. "exp":1
  422. },
  423. "location":"location",
  424. "assignments":[
  425. {
  426. "ref":"c",
  427. "value":"c"
  428. }
  429. ],
  430. "observables":[
  431. ]
  432. }
  433. ]
  434. }
  435. ]
  436. },
  437. {
  438. "name":"process1",
  439. "locations":[
  440. {
  441. "name":"location"
  442. }
  443. ],
  444. "initial-locations":[
  445. "location"
  446. ],
  447. "edges":[
  448. {
  449. "location":"location",
  450. "action":"pick",
  451. "guard":{
  452. "exp":{
  453. "op":"=",
  454. "left":"s1",
  455. "right":0
  456. }
  457. },
  458. "destinations":[
  459. {
  460. "probability":{
  461. "exp":{
  462. "op":"/",
  463. "left":1,
  464. "right":6
  465. }
  466. },
  467. "location":"location",
  468. "assignments":[
  469. {
  470. "ref":"s1",
  471. "value":1
  472. },
  473. {
  474. "ref":"p1",
  475. "value":0
  476. },
  477. {
  478. "ref":"v1",
  479. "value":0
  480. },
  481. {
  482. "ref":"u1",
  483. "value":true
  484. }
  485. ],
  486. "observables":[
  487. {
  488. "ref":"\"num_rounds\"",
  489. "value":1
  490. }
  491. ]
  492. },
  493. {
  494. "probability":{
  495. "exp":{
  496. "op":"/",
  497. "left":1,
  498. "right":6
  499. }
  500. },
  501. "location":"location",
  502. "assignments":[
  503. {
  504. "ref":"s1",
  505. "value":1
  506. },
  507. {
  508. "ref":"p1",
  509. "value":1
  510. },
  511. {
  512. "ref":"v1",
  513. "value":1
  514. },
  515. {
  516. "ref":"u1",
  517. "value":true
  518. }
  519. ],
  520. "observables":[
  521. {
  522. "ref":"\"num_rounds\"",
  523. "value":1
  524. }
  525. ]
  526. },
  527. {
  528. "probability":{
  529. "exp":{
  530. "op":"/",
  531. "left":1,
  532. "right":6
  533. }
  534. },
  535. "location":"location",
  536. "assignments":[
  537. {
  538. "ref":"s1",
  539. "value":1
  540. },
  541. {
  542. "ref":"p1",
  543. "value":2
  544. },
  545. {
  546. "ref":"v1",
  547. "value":2
  548. },
  549. {
  550. "ref":"u1",
  551. "value":true
  552. }
  553. ],
  554. "observables":[
  555. {
  556. "ref":"\"num_rounds\"",
  557. "value":1
  558. }
  559. ]
  560. },
  561. {
  562. "probability":{
  563. "exp":{
  564. "op":"/",
  565. "left":1,
  566. "right":6
  567. }
  568. },
  569. "location":"location",
  570. "assignments":[
  571. {
  572. "ref":"s1",
  573. "value":1
  574. },
  575. {
  576. "ref":"p1",
  577. "value":3
  578. },
  579. {
  580. "ref":"v1",
  581. "value":3
  582. },
  583. {
  584. "ref":"u1",
  585. "value":true
  586. }
  587. ],
  588. "observables":[
  589. {
  590. "ref":"\"num_rounds\"",
  591. "value":1
  592. }
  593. ]
  594. },
  595. {
  596. "probability":{
  597. "exp":{
  598. "op":"/",
  599. "left":1,
  600. "right":6
  601. }
  602. },
  603. "location":"location",
  604. "assignments":[
  605. {
  606. "ref":"s1",
  607. "value":1
  608. },
  609. {
  610. "ref":"p1",
  611. "value":4
  612. },
  613. {
  614. "ref":"v1",
  615. "value":4
  616. },
  617. {
  618. "ref":"u1",
  619. "value":true
  620. }
  621. ],
  622. "observables":[
  623. {
  624. "ref":"\"num_rounds\"",
  625. "value":1
  626. }
  627. ]
  628. },
  629. {
  630. "probability":{
  631. "exp":{
  632. "op":"/",
  633. "left":1,
  634. "right":6
  635. }
  636. },
  637. "location":"location",
  638. "assignments":[
  639. {
  640. "ref":"s1",
  641. "value":1
  642. },
  643. {
  644. "ref":"p1",
  645. "value":5
  646. },
  647. {
  648. "ref":"v1",
  649. "value":5
  650. },
  651. {
  652. "ref":"u1",
  653. "value":true
  654. }
  655. ],
  656. "observables":[
  657. {
  658. "ref":"\"num_rounds\"",
  659. "value":1
  660. }
  661. ]
  662. }
  663. ]
  664. },
  665. {
  666. "location":"location",
  667. "action":"read",
  668. "guard":{
  669. "exp":{
  670. "op":"∧",
  671. "left":{
  672. "op":"∧",
  673. "left":{
  674. "op":"=",
  675. "left":"s1",
  676. "right":1
  677. },
  678. "right":"u1"
  679. },
  680. "right":{
  681. "op":"<",
  682. "left":"c",
  683. "right":{
  684. "op":"-",
  685. "left":3,
  686. "right":1
  687. }
  688. }
  689. }
  690. },
  691. "destinations":[
  692. {
  693. "probability":{
  694. "exp":1
  695. },
  696. "location":"location",
  697. "assignments":[
  698. {
  699. "ref":"u1",
  700. "value":{
  701. "op":"≠",
  702. "left":"p1",
  703. "right":"v2"
  704. }
  705. },
  706. {
  707. "ref":"v1",
  708. "value":"v2"
  709. }
  710. ]
  711. }
  712. ]
  713. },
  714. {
  715. "location":"location",
  716. "action":"read",
  717. "guard":{
  718. "exp":{
  719. "op":"∧",
  720. "left":{
  721. "op":"∧",
  722. "left":{
  723. "op":"=",
  724. "left":"s1",
  725. "right":1
  726. },
  727. "right":{
  728. "op":"¬",
  729. "exp":"u1"
  730. }
  731. },
  732. "right":{
  733. "op":"<",
  734. "left":"c",
  735. "right":{
  736. "op":"-",
  737. "left":3,
  738. "right":1
  739. }
  740. }
  741. }
  742. },
  743. "destinations":[
  744. {
  745. "probability":{
  746. "exp":1
  747. },
  748. "location":"location",
  749. "assignments":[
  750. {
  751. "ref":"u1",
  752. "value":false
  753. },
  754. {
  755. "ref":"v1",
  756. "value":"v2"
  757. },
  758. {
  759. "ref":"p1",
  760. "value":0
  761. }
  762. ]
  763. }
  764. ]
  765. },
  766. {
  767. "location":"location",
  768. "action":"read",
  769. "guard":{
  770. "exp":{
  771. "op":"∧",
  772. "left":{
  773. "op":"∧",
  774. "left":{
  775. "op":"=",
  776. "left":"s1",
  777. "right":1
  778. },
  779. "right":"u1"
  780. },
  781. "right":{
  782. "op":"=",
  783. "left":"c",
  784. "right":{
  785. "op":"-",
  786. "left":3,
  787. "right":1
  788. }
  789. }
  790. }
  791. },
  792. "destinations":[
  793. {
  794. "probability":{
  795. "exp":1
  796. },
  797. "location":"location",
  798. "assignments":[
  799. {
  800. "ref":"s1",
  801. "value":2
  802. },
  803. {
  804. "ref":"u1",
  805. "value":{
  806. "op":"≠",
  807. "left":"p1",
  808. "right":"v2"
  809. }
  810. },
  811. {
  812. "ref":"v1",
  813. "value":0
  814. },
  815. {
  816. "ref":"p1",
  817. "value":0
  818. }
  819. ]
  820. }
  821. ]
  822. },
  823. {
  824. "location":"location",
  825. "action":"read",
  826. "guard":{
  827. "exp":{
  828. "op":"∧",
  829. "left":{
  830. "op":"∧",
  831. "left":{
  832. "op":"=",
  833. "left":"s1",
  834. "right":1
  835. },
  836. "right":{
  837. "op":"¬",
  838. "exp":"u1"
  839. }
  840. },
  841. "right":{
  842. "op":"=",
  843. "left":"c",
  844. "right":{
  845. "op":"-",
  846. "left":3,
  847. "right":1
  848. }
  849. }
  850. }
  851. },
  852. "destinations":[
  853. {
  854. "probability":{
  855. "exp":1
  856. },
  857. "location":"location",
  858. "assignments":[
  859. {
  860. "ref":"s1",
  861. "value":2
  862. },
  863. {
  864. "ref":"u1",
  865. "value":false
  866. },
  867. {
  868. "ref":"v1",
  869. "value":0
  870. }
  871. ]
  872. }
  873. ]
  874. },
  875. {
  876. "location":"location",
  877. "action":"done",
  878. "guard":{
  879. "exp":{
  880. "op":"=",
  881. "left":"s1",
  882. "right":2
  883. }
  884. },
  885. "destinations":[
  886. {
  887. "probability":{
  888. "exp":1
  889. },
  890. "location":"location",
  891. "assignments":[
  892. {
  893. "ref":"s1",
  894. "value":3
  895. },
  896. {
  897. "ref":"u1",
  898. "value":false
  899. },
  900. {
  901. "ref":"v1",
  902. "value":0
  903. },
  904. {
  905. "ref":"p1",
  906. "value":0
  907. }
  908. ]
  909. }
  910. ]
  911. },
  912. {
  913. "location":"location",
  914. "action":"retry",
  915. "guard":{
  916. "exp":{
  917. "op":"=",
  918. "left":"s1",
  919. "right":2
  920. }
  921. },
  922. "destinations":[
  923. {
  924. "probability":{
  925. "exp":1
  926. },
  927. "location":"location",
  928. "assignments":[
  929. {
  930. "ref":"s1",
  931. "value":0
  932. },
  933. {
  934. "ref":"u1",
  935. "value":false
  936. },
  937. {
  938. "ref":"v1",
  939. "value":0
  940. },
  941. {
  942. "ref":"p1",
  943. "value":0
  944. }
  945. ]
  946. }
  947. ]
  948. },
  949. {
  950. "location":"location",
  951. "action":"loop",
  952. "guard":{
  953. "exp":{
  954. "op":"=",
  955. "left":"s1",
  956. "right":3
  957. }
  958. },
  959. "destinations":[
  960. {
  961. "probability":{
  962. "exp":1
  963. },
  964. "location":"location",
  965. "assignments":[
  966. {
  967. "ref":"s1",
  968. "value":3
  969. }
  970. ]
  971. }
  972. ]
  973. }
  974. ]
  975. },
  976. {
  977. "name":"process2",
  978. "locations":[
  979. {
  980. "name":"location"
  981. }
  982. ],
  983. "initial-locations":[
  984. "location"
  985. ],
  986. "edges":[
  987. {
  988. "location":"location",
  989. "action":"pick",
  990. "guard":{
  991. "exp":{
  992. "op":"=",
  993. "left":"s2",
  994. "right":0
  995. }
  996. },
  997. "destinations":[
  998. {
  999. "probability":{
  1000. "exp":{
  1001. "op":"/",
  1002. "left":1,
  1003. "right":6
  1004. }
  1005. },
  1006. "location":"location",
  1007. "assignments":[
  1008. {
  1009. "ref":"s2",
  1010. "value":1
  1011. },
  1012. {
  1013. "ref":"p2",
  1014. "value":0
  1015. },
  1016. {
  1017. "ref":"v2",
  1018. "value":0
  1019. },
  1020. {
  1021. "ref":"u2",
  1022. "value":true
  1023. }
  1024. ]
  1025. },
  1026. {
  1027. "probability":{
  1028. "exp":{
  1029. "op":"/",
  1030. "left":1,
  1031. "right":6
  1032. }
  1033. },
  1034. "location":"location",
  1035. "assignments":[
  1036. {
  1037. "ref":"s2",
  1038. "value":1
  1039. },
  1040. {
  1041. "ref":"p2",
  1042. "value":1
  1043. },
  1044. {
  1045. "ref":"v2",
  1046. "value":1
  1047. },
  1048. {
  1049. "ref":"u2",
  1050. "value":true
  1051. }
  1052. ]
  1053. },
  1054. {
  1055. "probability":{
  1056. "exp":{
  1057. "op":"/",
  1058. "left":1,
  1059. "right":6
  1060. }
  1061. },
  1062. "location":"location",
  1063. "assignments":[
  1064. {
  1065. "ref":"s2",
  1066. "value":1
  1067. },
  1068. {
  1069. "ref":"p2",
  1070. "value":2
  1071. },
  1072. {
  1073. "ref":"v2",
  1074. "value":2
  1075. },
  1076. {
  1077. "ref":"u2",
  1078. "value":true
  1079. }
  1080. ]
  1081. },
  1082. {
  1083. "probability":{
  1084. "exp":{
  1085. "op":"/",
  1086. "left":1,
  1087. "right":6
  1088. }
  1089. },
  1090. "location":"location",
  1091. "assignments":[
  1092. {
  1093. "ref":"s2",
  1094. "value":1
  1095. },
  1096. {
  1097. "ref":"p2",
  1098. "value":3
  1099. },
  1100. {
  1101. "ref":"v2",
  1102. "value":3
  1103. },
  1104. {
  1105. "ref":"u2",
  1106. "value":true
  1107. }
  1108. ]
  1109. },
  1110. {
  1111. "probability":{
  1112. "exp":{
  1113. "op":"/",
  1114. "left":1,
  1115. "right":6
  1116. }
  1117. },
  1118. "location":"location",
  1119. "assignments":[
  1120. {
  1121. "ref":"s2",
  1122. "value":1
  1123. },
  1124. {
  1125. "ref":"p2",
  1126. "value":4
  1127. },
  1128. {
  1129. "ref":"v2",
  1130. "value":4
  1131. },
  1132. {
  1133. "ref":"u2",
  1134. "value":true
  1135. }
  1136. ]
  1137. },
  1138. {
  1139. "probability":{
  1140. "exp":{
  1141. "op":"/",
  1142. "left":1,
  1143. "right":6
  1144. }
  1145. },
  1146. "location":"location",
  1147. "assignments":[
  1148. {
  1149. "ref":"s2",
  1150. "value":1
  1151. },
  1152. {
  1153. "ref":"p2",
  1154. "value":5
  1155. },
  1156. {
  1157. "ref":"v2",
  1158. "value":5
  1159. },
  1160. {
  1161. "ref":"u2",
  1162. "value":true
  1163. }
  1164. ]
  1165. }
  1166. ]
  1167. },
  1168. {
  1169. "location":"location",
  1170. "action":"read",
  1171. "guard":{
  1172. "exp":{
  1173. "op":"∧",
  1174. "left":{
  1175. "op":"∧",
  1176. "left":{
  1177. "op":"=",
  1178. "left":"s2",
  1179. "right":1
  1180. },
  1181. "right":"u2"
  1182. },
  1183. "right":{
  1184. "op":"<",
  1185. "left":"c",
  1186. "right":{
  1187. "op":"-",
  1188. "left":3,
  1189. "right":1
  1190. }
  1191. }
  1192. }
  1193. },
  1194. "destinations":[
  1195. {
  1196. "probability":{
  1197. "exp":1
  1198. },
  1199. "location":"location",
  1200. "assignments":[
  1201. {
  1202. "ref":"u2",
  1203. "value":{
  1204. "op":"≠",
  1205. "left":"p2",
  1206. "right":"v3"
  1207. }
  1208. },
  1209. {
  1210. "ref":"v2",
  1211. "value":"v3"
  1212. }
  1213. ]
  1214. }
  1215. ]
  1216. },
  1217. {
  1218. "location":"location",
  1219. "action":"read",
  1220. "guard":{
  1221. "exp":{
  1222. "op":"∧",
  1223. "left":{
  1224. "op":"∧",
  1225. "left":{
  1226. "op":"=",
  1227. "left":"s2",
  1228. "right":1
  1229. },
  1230. "right":{
  1231. "op":"¬",
  1232. "exp":"u2"
  1233. }
  1234. },
  1235. "right":{
  1236. "op":"<",
  1237. "left":"c",
  1238. "right":{
  1239. "op":"-",
  1240. "left":3,
  1241. "right":1
  1242. }
  1243. }
  1244. }
  1245. },
  1246. "destinations":[
  1247. {
  1248. "probability":{
  1249. "exp":1
  1250. },
  1251. "location":"location",
  1252. "assignments":[
  1253. {
  1254. "ref":"u2",
  1255. "value":false
  1256. },
  1257. {
  1258. "ref":"v2",
  1259. "value":"v3"
  1260. },
  1261. {
  1262. "ref":"p2",
  1263. "value":0
  1264. }
  1265. ]
  1266. }
  1267. ]
  1268. },
  1269. {
  1270. "location":"location",
  1271. "action":"read",
  1272. "guard":{
  1273. "exp":{
  1274. "op":"∧",
  1275. "left":{
  1276. "op":"∧",
  1277. "left":{
  1278. "op":"=",
  1279. "left":"s2",
  1280. "right":1
  1281. },
  1282. "right":"u2"
  1283. },
  1284. "right":{
  1285. "op":"=",
  1286. "left":"c",
  1287. "right":{
  1288. "op":"-",
  1289. "left":3,
  1290. "right":1
  1291. }
  1292. }
  1293. }
  1294. },
  1295. "destinations":[
  1296. {
  1297. "probability":{
  1298. "exp":1
  1299. },
  1300. "location":"location",
  1301. "assignments":[
  1302. {
  1303. "ref":"s2",
  1304. "value":2
  1305. },
  1306. {
  1307. "ref":"u2",
  1308. "value":{
  1309. "op":"≠",
  1310. "left":"p2",
  1311. "right":"v3"
  1312. }
  1313. },
  1314. {
  1315. "ref":"v2",
  1316. "value":0
  1317. },
  1318. {
  1319. "ref":"p2",
  1320. "value":0
  1321. }
  1322. ]
  1323. }
  1324. ]
  1325. },
  1326. {
  1327. "location":"location",
  1328. "action":"read",
  1329. "guard":{
  1330. "exp":{
  1331. "op":"∧",
  1332. "left":{
  1333. "op":"∧",
  1334. "left":{
  1335. "op":"=",
  1336. "left":"s2",
  1337. "right":1
  1338. },
  1339. "right":{
  1340. "op":"¬",
  1341. "exp":"u2"
  1342. }
  1343. },
  1344. "right":{
  1345. "op":"=",
  1346. "left":"c",
  1347. "right":{
  1348. "op":"-",
  1349. "left":3,
  1350. "right":1
  1351. }
  1352. }
  1353. }
  1354. },
  1355. "destinations":[
  1356. {
  1357. "probability":{
  1358. "exp":1
  1359. },
  1360. "location":"location",
  1361. "assignments":[
  1362. {
  1363. "ref":"s2",
  1364. "value":2
  1365. },
  1366. {
  1367. "ref":"u2",
  1368. "value":false
  1369. },
  1370. {
  1371. "ref":"v2",
  1372. "value":0
  1373. }
  1374. ]
  1375. }
  1376. ]
  1377. },
  1378. {
  1379. "location":"location",
  1380. "action":"done",
  1381. "guard":{
  1382. "exp":{
  1383. "op":"=",
  1384. "left":"s2",
  1385. "right":2
  1386. }
  1387. },
  1388. "destinations":[
  1389. {
  1390. "probability":{
  1391. "exp":1
  1392. },
  1393. "location":"location",
  1394. "assignments":[
  1395. {
  1396. "ref":"s2",
  1397. "value":3
  1398. },
  1399. {
  1400. "ref":"u2",
  1401. "value":false
  1402. },
  1403. {
  1404. "ref":"v2",
  1405. "value":0
  1406. },
  1407. {
  1408. "ref":"p2",
  1409. "value":0
  1410. }
  1411. ]
  1412. }
  1413. ]
  1414. },
  1415. {
  1416. "location":"location",
  1417. "action":"retry",
  1418. "guard":{
  1419. "exp":{
  1420. "op":"=",
  1421. "left":"s2",
  1422. "right":2
  1423. }
  1424. },
  1425. "destinations":[
  1426. {
  1427. "probability":{
  1428. "exp":1
  1429. },
  1430. "location":"location",
  1431. "assignments":[
  1432. {
  1433. "ref":"s2",
  1434. "value":0
  1435. },
  1436. {
  1437. "ref":"u2",
  1438. "value":false
  1439. },
  1440. {
  1441. "ref":"v2",
  1442. "value":0
  1443. },
  1444. {
  1445. "ref":"p2",
  1446. "value":0
  1447. }
  1448. ]
  1449. }
  1450. ]
  1451. },
  1452. {
  1453. "location":"location",
  1454. "action":"loop",
  1455. "guard":{
  1456. "exp":{
  1457. "op":"=",
  1458. "left":"s2",
  1459. "right":3
  1460. }
  1461. },
  1462. "destinations":[
  1463. {
  1464. "probability":{
  1465. "exp":1
  1466. },
  1467. "location":"location",
  1468. "assignments":[
  1469. {
  1470. "ref":"s2",
  1471. "value":3
  1472. }
  1473. ]
  1474. }
  1475. ]
  1476. }
  1477. ]
  1478. },
  1479. {
  1480. "name":"process3",
  1481. "locations":[
  1482. {
  1483. "name":"location"
  1484. }
  1485. ],
  1486. "initial-locations":[
  1487. "location"
  1488. ],
  1489. "edges":[
  1490. {
  1491. "location":"location",
  1492. "action":"pick",
  1493. "guard":{
  1494. "exp":{
  1495. "op":"=",
  1496. "left":"s3",
  1497. "right":0
  1498. }
  1499. },
  1500. "destinations":[
  1501. {
  1502. "probability":{
  1503. "exp":{
  1504. "op":"/",
  1505. "left":1,
  1506. "right":6
  1507. }
  1508. },
  1509. "location":"location",
  1510. "assignments":[
  1511. {
  1512. "ref":"s3",
  1513. "value":1
  1514. },
  1515. {
  1516. "ref":"p3",
  1517. "value":0
  1518. },
  1519. {
  1520. "ref":"v3",
  1521. "value":0
  1522. },
  1523. {
  1524. "ref":"u3",
  1525. "value":true
  1526. }
  1527. ]
  1528. },
  1529. {
  1530. "probability":{
  1531. "exp":{
  1532. "op":"/",
  1533. "left":1,
  1534. "right":6
  1535. }
  1536. },
  1537. "location":"location",
  1538. "assignments":[
  1539. {
  1540. "ref":"s3",
  1541. "value":1
  1542. },
  1543. {
  1544. "ref":"p3",
  1545. "value":1
  1546. },
  1547. {
  1548. "ref":"v3",
  1549. "value":1
  1550. },
  1551. {
  1552. "ref":"u3",
  1553. "value":true
  1554. }
  1555. ]
  1556. },
  1557. {
  1558. "probability":{
  1559. "exp":{
  1560. "op":"/",
  1561. "left":1,
  1562. "right":6
  1563. }
  1564. },
  1565. "location":"location",
  1566. "assignments":[
  1567. {
  1568. "ref":"s3",
  1569. "value":1
  1570. },
  1571. {
  1572. "ref":"p3",
  1573. "value":2
  1574. },
  1575. {
  1576. "ref":"v3",
  1577. "value":2
  1578. },
  1579. {
  1580. "ref":"u3",
  1581. "value":true
  1582. }
  1583. ]
  1584. },
  1585. {
  1586. "probability":{
  1587. "exp":{
  1588. "op":"/",
  1589. "left":1,
  1590. "right":6
  1591. }
  1592. },
  1593. "location":"location",
  1594. "assignments":[
  1595. {
  1596. "ref":"s3",
  1597. "value":1
  1598. },
  1599. {
  1600. "ref":"p3",
  1601. "value":3
  1602. },
  1603. {
  1604. "ref":"v3",
  1605. "value":3
  1606. },
  1607. {
  1608. "ref":"u3",
  1609. "value":true
  1610. }
  1611. ]
  1612. },
  1613. {
  1614. "probability":{
  1615. "exp":{
  1616. "op":"/",
  1617. "left":1,
  1618. "right":6
  1619. }
  1620. },
  1621. "location":"location",
  1622. "assignments":[
  1623. {
  1624. "ref":"s3",
  1625. "value":1
  1626. },
  1627. {
  1628. "ref":"p3",
  1629. "value":4
  1630. },
  1631. {
  1632. "ref":"v3",
  1633. "value":4
  1634. },
  1635. {
  1636. "ref":"u3",
  1637. "value":true
  1638. }
  1639. ]
  1640. },
  1641. {
  1642. "probability":{
  1643. "exp":{
  1644. "op":"/",
  1645. "left":1,
  1646. "right":6
  1647. }
  1648. },
  1649. "location":"location",
  1650. "assignments":[
  1651. {
  1652. "ref":"s3",
  1653. "value":1
  1654. },
  1655. {
  1656. "ref":"p3",
  1657. "value":5
  1658. },
  1659. {
  1660. "ref":"v3",
  1661. "value":5
  1662. },
  1663. {
  1664. "ref":"u3",
  1665. "value":true
  1666. }
  1667. ]
  1668. }
  1669. ]
  1670. },
  1671. {
  1672. "location":"location",
  1673. "action":"read",
  1674. "guard":{
  1675. "exp":{
  1676. "op":"∧",
  1677. "left":{
  1678. "op":"∧",
  1679. "left":{
  1680. "op":"=",
  1681. "left":"s3",
  1682. "right":1
  1683. },
  1684. "right":"u3"
  1685. },
  1686. "right":{
  1687. "op":"<",
  1688. "left":"c",
  1689. "right":{
  1690. "op":"-",
  1691. "left":3,
  1692. "right":1
  1693. }
  1694. }
  1695. }
  1696. },
  1697. "destinations":[
  1698. {
  1699. "probability":{
  1700. "exp":1
  1701. },
  1702. "location":"location",
  1703. "assignments":[
  1704. {
  1705. "ref":"u3",
  1706. "value":{
  1707. "op":"≠",
  1708. "left":"p3",
  1709. "right":"v1"
  1710. }
  1711. },
  1712. {
  1713. "ref":"v3",
  1714. "value":"v1"
  1715. }
  1716. ]
  1717. }
  1718. ]
  1719. },
  1720. {
  1721. "location":"location",
  1722. "action":"read",
  1723. "guard":{
  1724. "exp":{
  1725. "op":"∧",
  1726. "left":{
  1727. "op":"∧",
  1728. "left":{
  1729. "op":"=",
  1730. "left":"s3",
  1731. "right":1
  1732. },
  1733. "right":{
  1734. "op":"¬",
  1735. "exp":"u3"
  1736. }
  1737. },
  1738. "right":{
  1739. "op":"<",
  1740. "left":"c",
  1741. "right":{
  1742. "op":"-",
  1743. "left":3,
  1744. "right":1
  1745. }
  1746. }
  1747. }
  1748. },
  1749. "destinations":[
  1750. {
  1751. "probability":{
  1752. "exp":1
  1753. },
  1754. "location":"location",
  1755. "assignments":[
  1756. {
  1757. "ref":"u3",
  1758. "value":false
  1759. },
  1760. {
  1761. "ref":"v3",
  1762. "value":"v1"
  1763. },
  1764. {
  1765. "ref":"p3",
  1766. "value":0
  1767. }
  1768. ]
  1769. }
  1770. ]
  1771. },
  1772. {
  1773. "location":"location",
  1774. "action":"read",
  1775. "guard":{
  1776. "exp":{
  1777. "op":"∧",
  1778. "left":{
  1779. "op":"∧",
  1780. "left":{
  1781. "op":"=",
  1782. "left":"s3",
  1783. "right":1
  1784. },
  1785. "right":"u3"
  1786. },
  1787. "right":{
  1788. "op":"=",
  1789. "left":"c",
  1790. "right":{
  1791. "op":"-",
  1792. "left":3,
  1793. "right":1
  1794. }
  1795. }
  1796. }
  1797. },
  1798. "destinations":[
  1799. {
  1800. "probability":{
  1801. "exp":1
  1802. },
  1803. "location":"location",
  1804. "assignments":[
  1805. {
  1806. "ref":"s3",
  1807. "value":2
  1808. },
  1809. {
  1810. "ref":"u3",
  1811. "value":{
  1812. "op":"≠",
  1813. "left":"p3",
  1814. "right":"v1"
  1815. }
  1816. },
  1817. {
  1818. "ref":"v3",
  1819. "value":0
  1820. },
  1821. {
  1822. "ref":"p3",
  1823. "value":0
  1824. }
  1825. ]
  1826. }
  1827. ]
  1828. },
  1829. {
  1830. "location":"location",
  1831. "action":"read",
  1832. "guard":{
  1833. "exp":{
  1834. "op":"∧",
  1835. "left":{
  1836. "op":"∧",
  1837. "left":{
  1838. "op":"=",
  1839. "left":"s3",
  1840. "right":1
  1841. },
  1842. "right":{
  1843. "op":"¬",
  1844. "exp":"u3"
  1845. }
  1846. },
  1847. "right":{
  1848. "op":"=",
  1849. "left":"c",
  1850. "right":{
  1851. "op":"-",
  1852. "left":3,
  1853. "right":1
  1854. }
  1855. }
  1856. }
  1857. },
  1858. "destinations":[
  1859. {
  1860. "probability":{
  1861. "exp":1
  1862. },
  1863. "location":"location",
  1864. "assignments":[
  1865. {
  1866. "ref":"s3",
  1867. "value":2
  1868. },
  1869. {
  1870. "ref":"u3",
  1871. "value":false
  1872. },
  1873. {
  1874. "ref":"v3",
  1875. "value":0
  1876. }
  1877. ]
  1878. }
  1879. ]
  1880. },
  1881. {
  1882. "location":"location",
  1883. "action":"done",
  1884. "guard":{
  1885. "exp":{
  1886. "op":"=",
  1887. "left":"s3",
  1888. "right":2
  1889. }
  1890. },
  1891. "destinations":[
  1892. {
  1893. "probability":{
  1894. "exp":1
  1895. },
  1896. "location":"location",
  1897. "assignments":[
  1898. {
  1899. "ref":"s3",
  1900. "value":3
  1901. },
  1902. {
  1903. "ref":"u3",
  1904. "value":false
  1905. },
  1906. {
  1907. "ref":"v3",
  1908. "value":0
  1909. },
  1910. {
  1911. "ref":"p3",
  1912. "value":0
  1913. }
  1914. ]
  1915. }
  1916. ]
  1917. },
  1918. {
  1919. "location":"location",
  1920. "action":"retry",
  1921. "guard":{
  1922. "exp":{
  1923. "op":"=",
  1924. "left":"s3",
  1925. "right":2
  1926. }
  1927. },
  1928. "destinations":[
  1929. {
  1930. "probability":{
  1931. "exp":1
  1932. },
  1933. "location":"location",
  1934. "assignments":[
  1935. {
  1936. "ref":"s3",
  1937. "value":0
  1938. },
  1939. {
  1940. "ref":"u3",
  1941. "value":false
  1942. },
  1943. {
  1944. "ref":"v3",
  1945. "value":0
  1946. },
  1947. {
  1948. "ref":"p3",
  1949. "value":0
  1950. }
  1951. ]
  1952. }
  1953. ]
  1954. },
  1955. {
  1956. "location":"location",
  1957. "action":"loop",
  1958. "guard":{
  1959. "exp":{
  1960. "op":"=",
  1961. "left":"s3",
  1962. "right":3
  1963. }
  1964. },
  1965. "destinations":[
  1966. {
  1967. "probability":{
  1968. "exp":1
  1969. },
  1970. "location":"location",
  1971. "assignments":[
  1972. {
  1973. "ref":"s3",
  1974. "value":3
  1975. }
  1976. ]
  1977. }
  1978. ]
  1979. }
  1980. ]
  1981. }
  1982. ],
  1983. "system":{
  1984. "elements":[
  1985. {
  1986. "automaton":"counter"
  1987. },
  1988. {
  1989. "automaton":"process1"
  1990. },
  1991. {
  1992. "automaton":"process2"
  1993. },
  1994. {
  1995. "automaton":"process3"
  1996. }
  1997. ],
  1998. "syncs":[
  1999. {
  2000. "synchronise":[
  2001. "read",
  2002. "read",
  2003. "read",
  2004. "read"
  2005. ],
  2006. "result":"read"
  2007. },
  2008. {
  2009. "synchronise":[
  2010. "done",
  2011. "done",
  2012. "done",
  2013. "done"
  2014. ],
  2015. "result":"done"
  2016. },
  2017. {
  2018. "synchronise":[
  2019. "retry",
  2020. "retry",
  2021. "retry",
  2022. "retry"
  2023. ],
  2024. "result":"retry"
  2025. },
  2026. {
  2027. "synchronise":[
  2028. "loop",
  2029. "loop",
  2030. "loop",
  2031. "loop"
  2032. ],
  2033. "result":"loop"
  2034. },
  2035. {
  2036. "synchronise":[
  2037. null,
  2038. "pick",
  2039. "pick",
  2040. "pick"
  2041. ],
  2042. "result":"pick"
  2043. }
  2044. ]
  2045. }
  2046. }