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.

2227 lines
79 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":8,
  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":8,
  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":8,
  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":8,
  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":8,
  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":8,
  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":8
  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":8
  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":8
  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":8
  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":8
  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":8
  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. "probability":{
  665. "exp":{
  666. "op":"/",
  667. "left":1,
  668. "right":8
  669. }
  670. },
  671. "location":"location",
  672. "assignments":[
  673. {
  674. "ref":"s1",
  675. "value":1
  676. },
  677. {
  678. "ref":"p1",
  679. "value":6
  680. },
  681. {
  682. "ref":"v1",
  683. "value":6
  684. },
  685. {
  686. "ref":"u1",
  687. "value":true
  688. }
  689. ],
  690. "observables":[
  691. {
  692. "ref":"\"num_rounds\"",
  693. "value":1
  694. }
  695. ]
  696. },
  697. {
  698. "probability":{
  699. "exp":{
  700. "op":"/",
  701. "left":1,
  702. "right":8
  703. }
  704. },
  705. "location":"location",
  706. "assignments":[
  707. {
  708. "ref":"s1",
  709. "value":1
  710. },
  711. {
  712. "ref":"p1",
  713. "value":7
  714. },
  715. {
  716. "ref":"v1",
  717. "value":7
  718. },
  719. {
  720. "ref":"u1",
  721. "value":true
  722. }
  723. ],
  724. "observables":[
  725. {
  726. "ref":"\"num_rounds\"",
  727. "value":1
  728. }
  729. ]
  730. }
  731. ]
  732. },
  733. {
  734. "location":"location",
  735. "action":"read",
  736. "guard":{
  737. "exp":{
  738. "op":"∧",
  739. "left":{
  740. "op":"∧",
  741. "left":{
  742. "op":"=",
  743. "left":"s1",
  744. "right":1
  745. },
  746. "right":"u1"
  747. },
  748. "right":{
  749. "op":"<",
  750. "left":"c",
  751. "right":{
  752. "op":"-",
  753. "left":3,
  754. "right":1
  755. }
  756. }
  757. }
  758. },
  759. "destinations":[
  760. {
  761. "probability":{
  762. "exp":1
  763. },
  764. "location":"location",
  765. "assignments":[
  766. {
  767. "ref":"u1",
  768. "value":{
  769. "op":"≠",
  770. "left":"p1",
  771. "right":"v2"
  772. }
  773. },
  774. {
  775. "ref":"v1",
  776. "value":"v2"
  777. }
  778. ]
  779. }
  780. ]
  781. },
  782. {
  783. "location":"location",
  784. "action":"read",
  785. "guard":{
  786. "exp":{
  787. "op":"∧",
  788. "left":{
  789. "op":"∧",
  790. "left":{
  791. "op":"=",
  792. "left":"s1",
  793. "right":1
  794. },
  795. "right":{
  796. "op":"¬",
  797. "exp":"u1"
  798. }
  799. },
  800. "right":{
  801. "op":"<",
  802. "left":"c",
  803. "right":{
  804. "op":"-",
  805. "left":3,
  806. "right":1
  807. }
  808. }
  809. }
  810. },
  811. "destinations":[
  812. {
  813. "probability":{
  814. "exp":1
  815. },
  816. "location":"location",
  817. "assignments":[
  818. {
  819. "ref":"u1",
  820. "value":false
  821. },
  822. {
  823. "ref":"v1",
  824. "value":"v2"
  825. },
  826. {
  827. "ref":"p1",
  828. "value":0
  829. }
  830. ]
  831. }
  832. ]
  833. },
  834. {
  835. "location":"location",
  836. "action":"read",
  837. "guard":{
  838. "exp":{
  839. "op":"∧",
  840. "left":{
  841. "op":"∧",
  842. "left":{
  843. "op":"=",
  844. "left":"s1",
  845. "right":1
  846. },
  847. "right":"u1"
  848. },
  849. "right":{
  850. "op":"=",
  851. "left":"c",
  852. "right":{
  853. "op":"-",
  854. "left":3,
  855. "right":1
  856. }
  857. }
  858. }
  859. },
  860. "destinations":[
  861. {
  862. "probability":{
  863. "exp":1
  864. },
  865. "location":"location",
  866. "assignments":[
  867. {
  868. "ref":"s1",
  869. "value":2
  870. },
  871. {
  872. "ref":"u1",
  873. "value":{
  874. "op":"≠",
  875. "left":"p1",
  876. "right":"v2"
  877. }
  878. },
  879. {
  880. "ref":"v1",
  881. "value":0
  882. },
  883. {
  884. "ref":"p1",
  885. "value":0
  886. }
  887. ]
  888. }
  889. ]
  890. },
  891. {
  892. "location":"location",
  893. "action":"read",
  894. "guard":{
  895. "exp":{
  896. "op":"∧",
  897. "left":{
  898. "op":"∧",
  899. "left":{
  900. "op":"=",
  901. "left":"s1",
  902. "right":1
  903. },
  904. "right":{
  905. "op":"¬",
  906. "exp":"u1"
  907. }
  908. },
  909. "right":{
  910. "op":"=",
  911. "left":"c",
  912. "right":{
  913. "op":"-",
  914. "left":3,
  915. "right":1
  916. }
  917. }
  918. }
  919. },
  920. "destinations":[
  921. {
  922. "probability":{
  923. "exp":1
  924. },
  925. "location":"location",
  926. "assignments":[
  927. {
  928. "ref":"s1",
  929. "value":2
  930. },
  931. {
  932. "ref":"u1",
  933. "value":false
  934. },
  935. {
  936. "ref":"v1",
  937. "value":0
  938. }
  939. ]
  940. }
  941. ]
  942. },
  943. {
  944. "location":"location",
  945. "action":"done",
  946. "guard":{
  947. "exp":{
  948. "op":"=",
  949. "left":"s1",
  950. "right":2
  951. }
  952. },
  953. "destinations":[
  954. {
  955. "probability":{
  956. "exp":1
  957. },
  958. "location":"location",
  959. "assignments":[
  960. {
  961. "ref":"s1",
  962. "value":3
  963. },
  964. {
  965. "ref":"u1",
  966. "value":false
  967. },
  968. {
  969. "ref":"v1",
  970. "value":0
  971. },
  972. {
  973. "ref":"p1",
  974. "value":0
  975. }
  976. ]
  977. }
  978. ]
  979. },
  980. {
  981. "location":"location",
  982. "action":"retry",
  983. "guard":{
  984. "exp":{
  985. "op":"=",
  986. "left":"s1",
  987. "right":2
  988. }
  989. },
  990. "destinations":[
  991. {
  992. "probability":{
  993. "exp":1
  994. },
  995. "location":"location",
  996. "assignments":[
  997. {
  998. "ref":"s1",
  999. "value":0
  1000. },
  1001. {
  1002. "ref":"u1",
  1003. "value":false
  1004. },
  1005. {
  1006. "ref":"v1",
  1007. "value":0
  1008. },
  1009. {
  1010. "ref":"p1",
  1011. "value":0
  1012. }
  1013. ]
  1014. }
  1015. ]
  1016. },
  1017. {
  1018. "location":"location",
  1019. "action":"loop",
  1020. "guard":{
  1021. "exp":{
  1022. "op":"=",
  1023. "left":"s1",
  1024. "right":3
  1025. }
  1026. },
  1027. "destinations":[
  1028. {
  1029. "probability":{
  1030. "exp":1
  1031. },
  1032. "location":"location",
  1033. "assignments":[
  1034. {
  1035. "ref":"s1",
  1036. "value":3
  1037. }
  1038. ]
  1039. }
  1040. ]
  1041. }
  1042. ]
  1043. },
  1044. {
  1045. "name":"process2",
  1046. "locations":[
  1047. {
  1048. "name":"location"
  1049. }
  1050. ],
  1051. "initial-locations":[
  1052. "location"
  1053. ],
  1054. "edges":[
  1055. {
  1056. "location":"location",
  1057. "action":"pick",
  1058. "guard":{
  1059. "exp":{
  1060. "op":"=",
  1061. "left":"s2",
  1062. "right":0
  1063. }
  1064. },
  1065. "destinations":[
  1066. {
  1067. "probability":{
  1068. "exp":{
  1069. "op":"/",
  1070. "left":1,
  1071. "right":8
  1072. }
  1073. },
  1074. "location":"location",
  1075. "assignments":[
  1076. {
  1077. "ref":"s2",
  1078. "value":1
  1079. },
  1080. {
  1081. "ref":"p2",
  1082. "value":0
  1083. },
  1084. {
  1085. "ref":"v2",
  1086. "value":0
  1087. },
  1088. {
  1089. "ref":"u2",
  1090. "value":true
  1091. }
  1092. ]
  1093. },
  1094. {
  1095. "probability":{
  1096. "exp":{
  1097. "op":"/",
  1098. "left":1,
  1099. "right":8
  1100. }
  1101. },
  1102. "location":"location",
  1103. "assignments":[
  1104. {
  1105. "ref":"s2",
  1106. "value":1
  1107. },
  1108. {
  1109. "ref":"p2",
  1110. "value":1
  1111. },
  1112. {
  1113. "ref":"v2",
  1114. "value":1
  1115. },
  1116. {
  1117. "ref":"u2",
  1118. "value":true
  1119. }
  1120. ]
  1121. },
  1122. {
  1123. "probability":{
  1124. "exp":{
  1125. "op":"/",
  1126. "left":1,
  1127. "right":8
  1128. }
  1129. },
  1130. "location":"location",
  1131. "assignments":[
  1132. {
  1133. "ref":"s2",
  1134. "value":1
  1135. },
  1136. {
  1137. "ref":"p2",
  1138. "value":2
  1139. },
  1140. {
  1141. "ref":"v2",
  1142. "value":2
  1143. },
  1144. {
  1145. "ref":"u2",
  1146. "value":true
  1147. }
  1148. ]
  1149. },
  1150. {
  1151. "probability":{
  1152. "exp":{
  1153. "op":"/",
  1154. "left":1,
  1155. "right":8
  1156. }
  1157. },
  1158. "location":"location",
  1159. "assignments":[
  1160. {
  1161. "ref":"s2",
  1162. "value":1
  1163. },
  1164. {
  1165. "ref":"p2",
  1166. "value":3
  1167. },
  1168. {
  1169. "ref":"v2",
  1170. "value":3
  1171. },
  1172. {
  1173. "ref":"u2",
  1174. "value":true
  1175. }
  1176. ]
  1177. },
  1178. {
  1179. "probability":{
  1180. "exp":{
  1181. "op":"/",
  1182. "left":1,
  1183. "right":8
  1184. }
  1185. },
  1186. "location":"location",
  1187. "assignments":[
  1188. {
  1189. "ref":"s2",
  1190. "value":1
  1191. },
  1192. {
  1193. "ref":"p2",
  1194. "value":4
  1195. },
  1196. {
  1197. "ref":"v2",
  1198. "value":4
  1199. },
  1200. {
  1201. "ref":"u2",
  1202. "value":true
  1203. }
  1204. ]
  1205. },
  1206. {
  1207. "probability":{
  1208. "exp":{
  1209. "op":"/",
  1210. "left":1,
  1211. "right":8
  1212. }
  1213. },
  1214. "location":"location",
  1215. "assignments":[
  1216. {
  1217. "ref":"s2",
  1218. "value":1
  1219. },
  1220. {
  1221. "ref":"p2",
  1222. "value":5
  1223. },
  1224. {
  1225. "ref":"v2",
  1226. "value":5
  1227. },
  1228. {
  1229. "ref":"u2",
  1230. "value":true
  1231. }
  1232. ]
  1233. },
  1234. {
  1235. "probability":{
  1236. "exp":{
  1237. "op":"/",
  1238. "left":1,
  1239. "right":8
  1240. }
  1241. },
  1242. "location":"location",
  1243. "assignments":[
  1244. {
  1245. "ref":"s2",
  1246. "value":1
  1247. },
  1248. {
  1249. "ref":"p2",
  1250. "value":6
  1251. },
  1252. {
  1253. "ref":"v2",
  1254. "value":6
  1255. },
  1256. {
  1257. "ref":"u2",
  1258. "value":true
  1259. }
  1260. ]
  1261. },
  1262. {
  1263. "probability":{
  1264. "exp":{
  1265. "op":"/",
  1266. "left":1,
  1267. "right":8
  1268. }
  1269. },
  1270. "location":"location",
  1271. "assignments":[
  1272. {
  1273. "ref":"s2",
  1274. "value":1
  1275. },
  1276. {
  1277. "ref":"p2",
  1278. "value":7
  1279. },
  1280. {
  1281. "ref":"v2",
  1282. "value":7
  1283. },
  1284. {
  1285. "ref":"u2",
  1286. "value":true
  1287. }
  1288. ]
  1289. }
  1290. ]
  1291. },
  1292. {
  1293. "location":"location",
  1294. "action":"read",
  1295. "guard":{
  1296. "exp":{
  1297. "op":"∧",
  1298. "left":{
  1299. "op":"∧",
  1300. "left":{
  1301. "op":"=",
  1302. "left":"s2",
  1303. "right":1
  1304. },
  1305. "right":"u2"
  1306. },
  1307. "right":{
  1308. "op":"<",
  1309. "left":"c",
  1310. "right":{
  1311. "op":"-",
  1312. "left":3,
  1313. "right":1
  1314. }
  1315. }
  1316. }
  1317. },
  1318. "destinations":[
  1319. {
  1320. "probability":{
  1321. "exp":1
  1322. },
  1323. "location":"location",
  1324. "assignments":[
  1325. {
  1326. "ref":"u2",
  1327. "value":{
  1328. "op":"≠",
  1329. "left":"p2",
  1330. "right":"v3"
  1331. }
  1332. },
  1333. {
  1334. "ref":"v2",
  1335. "value":"v3"
  1336. }
  1337. ]
  1338. }
  1339. ]
  1340. },
  1341. {
  1342. "location":"location",
  1343. "action":"read",
  1344. "guard":{
  1345. "exp":{
  1346. "op":"∧",
  1347. "left":{
  1348. "op":"∧",
  1349. "left":{
  1350. "op":"=",
  1351. "left":"s2",
  1352. "right":1
  1353. },
  1354. "right":{
  1355. "op":"¬",
  1356. "exp":"u2"
  1357. }
  1358. },
  1359. "right":{
  1360. "op":"<",
  1361. "left":"c",
  1362. "right":{
  1363. "op":"-",
  1364. "left":3,
  1365. "right":1
  1366. }
  1367. }
  1368. }
  1369. },
  1370. "destinations":[
  1371. {
  1372. "probability":{
  1373. "exp":1
  1374. },
  1375. "location":"location",
  1376. "assignments":[
  1377. {
  1378. "ref":"u2",
  1379. "value":false
  1380. },
  1381. {
  1382. "ref":"v2",
  1383. "value":"v3"
  1384. },
  1385. {
  1386. "ref":"p2",
  1387. "value":0
  1388. }
  1389. ]
  1390. }
  1391. ]
  1392. },
  1393. {
  1394. "location":"location",
  1395. "action":"read",
  1396. "guard":{
  1397. "exp":{
  1398. "op":"∧",
  1399. "left":{
  1400. "op":"∧",
  1401. "left":{
  1402. "op":"=",
  1403. "left":"s2",
  1404. "right":1
  1405. },
  1406. "right":"u2"
  1407. },
  1408. "right":{
  1409. "op":"=",
  1410. "left":"c",
  1411. "right":{
  1412. "op":"-",
  1413. "left":3,
  1414. "right":1
  1415. }
  1416. }
  1417. }
  1418. },
  1419. "destinations":[
  1420. {
  1421. "probability":{
  1422. "exp":1
  1423. },
  1424. "location":"location",
  1425. "assignments":[
  1426. {
  1427. "ref":"s2",
  1428. "value":2
  1429. },
  1430. {
  1431. "ref":"u2",
  1432. "value":{
  1433. "op":"≠",
  1434. "left":"p2",
  1435. "right":"v3"
  1436. }
  1437. },
  1438. {
  1439. "ref":"v2",
  1440. "value":0
  1441. },
  1442. {
  1443. "ref":"p2",
  1444. "value":0
  1445. }
  1446. ]
  1447. }
  1448. ]
  1449. },
  1450. {
  1451. "location":"location",
  1452. "action":"read",
  1453. "guard":{
  1454. "exp":{
  1455. "op":"∧",
  1456. "left":{
  1457. "op":"∧",
  1458. "left":{
  1459. "op":"=",
  1460. "left":"s2",
  1461. "right":1
  1462. },
  1463. "right":{
  1464. "op":"¬",
  1465. "exp":"u2"
  1466. }
  1467. },
  1468. "right":{
  1469. "op":"=",
  1470. "left":"c",
  1471. "right":{
  1472. "op":"-",
  1473. "left":3,
  1474. "right":1
  1475. }
  1476. }
  1477. }
  1478. },
  1479. "destinations":[
  1480. {
  1481. "probability":{
  1482. "exp":1
  1483. },
  1484. "location":"location",
  1485. "assignments":[
  1486. {
  1487. "ref":"s2",
  1488. "value":2
  1489. },
  1490. {
  1491. "ref":"u2",
  1492. "value":false
  1493. },
  1494. {
  1495. "ref":"v2",
  1496. "value":0
  1497. }
  1498. ]
  1499. }
  1500. ]
  1501. },
  1502. {
  1503. "location":"location",
  1504. "action":"done",
  1505. "guard":{
  1506. "exp":{
  1507. "op":"=",
  1508. "left":"s2",
  1509. "right":2
  1510. }
  1511. },
  1512. "destinations":[
  1513. {
  1514. "probability":{
  1515. "exp":1
  1516. },
  1517. "location":"location",
  1518. "assignments":[
  1519. {
  1520. "ref":"s2",
  1521. "value":3
  1522. },
  1523. {
  1524. "ref":"u2",
  1525. "value":false
  1526. },
  1527. {
  1528. "ref":"v2",
  1529. "value":0
  1530. },
  1531. {
  1532. "ref":"p2",
  1533. "value":0
  1534. }
  1535. ]
  1536. }
  1537. ]
  1538. },
  1539. {
  1540. "location":"location",
  1541. "action":"retry",
  1542. "guard":{
  1543. "exp":{
  1544. "op":"=",
  1545. "left":"s2",
  1546. "right":2
  1547. }
  1548. },
  1549. "destinations":[
  1550. {
  1551. "probability":{
  1552. "exp":1
  1553. },
  1554. "location":"location",
  1555. "assignments":[
  1556. {
  1557. "ref":"s2",
  1558. "value":0
  1559. },
  1560. {
  1561. "ref":"u2",
  1562. "value":false
  1563. },
  1564. {
  1565. "ref":"v2",
  1566. "value":0
  1567. },
  1568. {
  1569. "ref":"p2",
  1570. "value":0
  1571. }
  1572. ]
  1573. }
  1574. ]
  1575. },
  1576. {
  1577. "location":"location",
  1578. "action":"loop",
  1579. "guard":{
  1580. "exp":{
  1581. "op":"=",
  1582. "left":"s2",
  1583. "right":3
  1584. }
  1585. },
  1586. "destinations":[
  1587. {
  1588. "probability":{
  1589. "exp":1
  1590. },
  1591. "location":"location",
  1592. "assignments":[
  1593. {
  1594. "ref":"s2",
  1595. "value":3
  1596. }
  1597. ]
  1598. }
  1599. ]
  1600. }
  1601. ]
  1602. },
  1603. {
  1604. "name":"process3",
  1605. "locations":[
  1606. {
  1607. "name":"location"
  1608. }
  1609. ],
  1610. "initial-locations":[
  1611. "location"
  1612. ],
  1613. "edges":[
  1614. {
  1615. "location":"location",
  1616. "action":"pick",
  1617. "guard":{
  1618. "exp":{
  1619. "op":"=",
  1620. "left":"s3",
  1621. "right":0
  1622. }
  1623. },
  1624. "destinations":[
  1625. {
  1626. "probability":{
  1627. "exp":{
  1628. "op":"/",
  1629. "left":1,
  1630. "right":8
  1631. }
  1632. },
  1633. "location":"location",
  1634. "assignments":[
  1635. {
  1636. "ref":"s3",
  1637. "value":1
  1638. },
  1639. {
  1640. "ref":"p3",
  1641. "value":0
  1642. },
  1643. {
  1644. "ref":"v3",
  1645. "value":0
  1646. },
  1647. {
  1648. "ref":"u3",
  1649. "value":true
  1650. }
  1651. ]
  1652. },
  1653. {
  1654. "probability":{
  1655. "exp":{
  1656. "op":"/",
  1657. "left":1,
  1658. "right":8
  1659. }
  1660. },
  1661. "location":"location",
  1662. "assignments":[
  1663. {
  1664. "ref":"s3",
  1665. "value":1
  1666. },
  1667. {
  1668. "ref":"p3",
  1669. "value":1
  1670. },
  1671. {
  1672. "ref":"v3",
  1673. "value":1
  1674. },
  1675. {
  1676. "ref":"u3",
  1677. "value":true
  1678. }
  1679. ]
  1680. },
  1681. {
  1682. "probability":{
  1683. "exp":{
  1684. "op":"/",
  1685. "left":1,
  1686. "right":8
  1687. }
  1688. },
  1689. "location":"location",
  1690. "assignments":[
  1691. {
  1692. "ref":"s3",
  1693. "value":1
  1694. },
  1695. {
  1696. "ref":"p3",
  1697. "value":2
  1698. },
  1699. {
  1700. "ref":"v3",
  1701. "value":2
  1702. },
  1703. {
  1704. "ref":"u3",
  1705. "value":true
  1706. }
  1707. ]
  1708. },
  1709. {
  1710. "probability":{
  1711. "exp":{
  1712. "op":"/",
  1713. "left":1,
  1714. "right":8
  1715. }
  1716. },
  1717. "location":"location",
  1718. "assignments":[
  1719. {
  1720. "ref":"s3",
  1721. "value":1
  1722. },
  1723. {
  1724. "ref":"p3",
  1725. "value":3
  1726. },
  1727. {
  1728. "ref":"v3",
  1729. "value":3
  1730. },
  1731. {
  1732. "ref":"u3",
  1733. "value":true
  1734. }
  1735. ]
  1736. },
  1737. {
  1738. "probability":{
  1739. "exp":{
  1740. "op":"/",
  1741. "left":1,
  1742. "right":8
  1743. }
  1744. },
  1745. "location":"location",
  1746. "assignments":[
  1747. {
  1748. "ref":"s3",
  1749. "value":1
  1750. },
  1751. {
  1752. "ref":"p3",
  1753. "value":4
  1754. },
  1755. {
  1756. "ref":"v3",
  1757. "value":4
  1758. },
  1759. {
  1760. "ref":"u3",
  1761. "value":true
  1762. }
  1763. ]
  1764. },
  1765. {
  1766. "probability":{
  1767. "exp":{
  1768. "op":"/",
  1769. "left":1,
  1770. "right":8
  1771. }
  1772. },
  1773. "location":"location",
  1774. "assignments":[
  1775. {
  1776. "ref":"s3",
  1777. "value":1
  1778. },
  1779. {
  1780. "ref":"p3",
  1781. "value":5
  1782. },
  1783. {
  1784. "ref":"v3",
  1785. "value":5
  1786. },
  1787. {
  1788. "ref":"u3",
  1789. "value":true
  1790. }
  1791. ]
  1792. },
  1793. {
  1794. "probability":{
  1795. "exp":{
  1796. "op":"/",
  1797. "left":1,
  1798. "right":8
  1799. }
  1800. },
  1801. "location":"location",
  1802. "assignments":[
  1803. {
  1804. "ref":"s3",
  1805. "value":1
  1806. },
  1807. {
  1808. "ref":"p3",
  1809. "value":6
  1810. },
  1811. {
  1812. "ref":"v3",
  1813. "value":6
  1814. },
  1815. {
  1816. "ref":"u3",
  1817. "value":true
  1818. }
  1819. ]
  1820. },
  1821. {
  1822. "probability":{
  1823. "exp":{
  1824. "op":"/",
  1825. "left":1,
  1826. "right":8
  1827. }
  1828. },
  1829. "location":"location",
  1830. "assignments":[
  1831. {
  1832. "ref":"s3",
  1833. "value":1
  1834. },
  1835. {
  1836. "ref":"p3",
  1837. "value":7
  1838. },
  1839. {
  1840. "ref":"v3",
  1841. "value":7
  1842. },
  1843. {
  1844. "ref":"u3",
  1845. "value":true
  1846. }
  1847. ]
  1848. }
  1849. ]
  1850. },
  1851. {
  1852. "location":"location",
  1853. "action":"read",
  1854. "guard":{
  1855. "exp":{
  1856. "op":"∧",
  1857. "left":{
  1858. "op":"∧",
  1859. "left":{
  1860. "op":"=",
  1861. "left":"s3",
  1862. "right":1
  1863. },
  1864. "right":"u3"
  1865. },
  1866. "right":{
  1867. "op":"<",
  1868. "left":"c",
  1869. "right":{
  1870. "op":"-",
  1871. "left":3,
  1872. "right":1
  1873. }
  1874. }
  1875. }
  1876. },
  1877. "destinations":[
  1878. {
  1879. "probability":{
  1880. "exp":1
  1881. },
  1882. "location":"location",
  1883. "assignments":[
  1884. {
  1885. "ref":"u3",
  1886. "value":{
  1887. "op":"≠",
  1888. "left":"p3",
  1889. "right":"v1"
  1890. }
  1891. },
  1892. {
  1893. "ref":"v3",
  1894. "value":"v1"
  1895. }
  1896. ]
  1897. }
  1898. ]
  1899. },
  1900. {
  1901. "location":"location",
  1902. "action":"read",
  1903. "guard":{
  1904. "exp":{
  1905. "op":"∧",
  1906. "left":{
  1907. "op":"∧",
  1908. "left":{
  1909. "op":"=",
  1910. "left":"s3",
  1911. "right":1
  1912. },
  1913. "right":{
  1914. "op":"¬",
  1915. "exp":"u3"
  1916. }
  1917. },
  1918. "right":{
  1919. "op":"<",
  1920. "left":"c",
  1921. "right":{
  1922. "op":"-",
  1923. "left":3,
  1924. "right":1
  1925. }
  1926. }
  1927. }
  1928. },
  1929. "destinations":[
  1930. {
  1931. "probability":{
  1932. "exp":1
  1933. },
  1934. "location":"location",
  1935. "assignments":[
  1936. {
  1937. "ref":"u3",
  1938. "value":false
  1939. },
  1940. {
  1941. "ref":"v3",
  1942. "value":"v1"
  1943. },
  1944. {
  1945. "ref":"p3",
  1946. "value":0
  1947. }
  1948. ]
  1949. }
  1950. ]
  1951. },
  1952. {
  1953. "location":"location",
  1954. "action":"read",
  1955. "guard":{
  1956. "exp":{
  1957. "op":"∧",
  1958. "left":{
  1959. "op":"∧",
  1960. "left":{
  1961. "op":"=",
  1962. "left":"s3",
  1963. "right":1
  1964. },
  1965. "right":"u3"
  1966. },
  1967. "right":{
  1968. "op":"=",
  1969. "left":"c",
  1970. "right":{
  1971. "op":"-",
  1972. "left":3,
  1973. "right":1
  1974. }
  1975. }
  1976. }
  1977. },
  1978. "destinations":[
  1979. {
  1980. "probability":{
  1981. "exp":1
  1982. },
  1983. "location":"location",
  1984. "assignments":[
  1985. {
  1986. "ref":"s3",
  1987. "value":2
  1988. },
  1989. {
  1990. "ref":"u3",
  1991. "value":{
  1992. "op":"≠",
  1993. "left":"p3",
  1994. "right":"v1"
  1995. }
  1996. },
  1997. {
  1998. "ref":"v3",
  1999. "value":0
  2000. },
  2001. {
  2002. "ref":"p3",
  2003. "value":0
  2004. }
  2005. ]
  2006. }
  2007. ]
  2008. },
  2009. {
  2010. "location":"location",
  2011. "action":"read",
  2012. "guard":{
  2013. "exp":{
  2014. "op":"∧",
  2015. "left":{
  2016. "op":"∧",
  2017. "left":{
  2018. "op":"=",
  2019. "left":"s3",
  2020. "right":1
  2021. },
  2022. "right":{
  2023. "op":"¬",
  2024. "exp":"u3"
  2025. }
  2026. },
  2027. "right":{
  2028. "op":"=",
  2029. "left":"c",
  2030. "right":{
  2031. "op":"-",
  2032. "left":3,
  2033. "right":1
  2034. }
  2035. }
  2036. }
  2037. },
  2038. "destinations":[
  2039. {
  2040. "probability":{
  2041. "exp":1
  2042. },
  2043. "location":"location",
  2044. "assignments":[
  2045. {
  2046. "ref":"s3",
  2047. "value":2
  2048. },
  2049. {
  2050. "ref":"u3",
  2051. "value":false
  2052. },
  2053. {
  2054. "ref":"v3",
  2055. "value":0
  2056. }
  2057. ]
  2058. }
  2059. ]
  2060. },
  2061. {
  2062. "location":"location",
  2063. "action":"done",
  2064. "guard":{
  2065. "exp":{
  2066. "op":"=",
  2067. "left":"s3",
  2068. "right":2
  2069. }
  2070. },
  2071. "destinations":[
  2072. {
  2073. "probability":{
  2074. "exp":1
  2075. },
  2076. "location":"location",
  2077. "assignments":[
  2078. {
  2079. "ref":"s3",
  2080. "value":3
  2081. },
  2082. {
  2083. "ref":"u3",
  2084. "value":false
  2085. },
  2086. {
  2087. "ref":"v3",
  2088. "value":0
  2089. },
  2090. {
  2091. "ref":"p3",
  2092. "value":0
  2093. }
  2094. ]
  2095. }
  2096. ]
  2097. },
  2098. {
  2099. "location":"location",
  2100. "action":"retry",
  2101. "guard":{
  2102. "exp":{
  2103. "op":"=",
  2104. "left":"s3",
  2105. "right":2
  2106. }
  2107. },
  2108. "destinations":[
  2109. {
  2110. "probability":{
  2111. "exp":1
  2112. },
  2113. "location":"location",
  2114. "assignments":[
  2115. {
  2116. "ref":"s3",
  2117. "value":0
  2118. },
  2119. {
  2120. "ref":"u3",
  2121. "value":false
  2122. },
  2123. {
  2124. "ref":"v3",
  2125. "value":0
  2126. },
  2127. {
  2128. "ref":"p3",
  2129. "value":0
  2130. }
  2131. ]
  2132. }
  2133. ]
  2134. },
  2135. {
  2136. "location":"location",
  2137. "action":"loop",
  2138. "guard":{
  2139. "exp":{
  2140. "op":"=",
  2141. "left":"s3",
  2142. "right":3
  2143. }
  2144. },
  2145. "destinations":[
  2146. {
  2147. "probability":{
  2148. "exp":1
  2149. },
  2150. "location":"location",
  2151. "assignments":[
  2152. {
  2153. "ref":"s3",
  2154. "value":3
  2155. }
  2156. ]
  2157. }
  2158. ]
  2159. }
  2160. ]
  2161. }
  2162. ],
  2163. "system":{
  2164. "elements":[
  2165. {
  2166. "automaton":"counter"
  2167. },
  2168. {
  2169. "automaton":"process1"
  2170. },
  2171. {
  2172. "automaton":"process2"
  2173. },
  2174. {
  2175. "automaton":"process3"
  2176. }
  2177. ],
  2178. "syncs":[
  2179. {
  2180. "synchronise":[
  2181. "read",
  2182. "read",
  2183. "read",
  2184. "read"
  2185. ],
  2186. "result":"read"
  2187. },
  2188. {
  2189. "synchronise":[
  2190. "done",
  2191. "done",
  2192. "done",
  2193. "done"
  2194. ],
  2195. "result":"done"
  2196. },
  2197. {
  2198. "synchronise":[
  2199. "retry",
  2200. "retry",
  2201. "retry",
  2202. "retry"
  2203. ],
  2204. "result":"retry"
  2205. },
  2206. {
  2207. "synchronise":[
  2208. "loop",
  2209. "loop",
  2210. "loop",
  2211. "loop"
  2212. ],
  2213. "result":"loop"
  2214. },
  2215. {
  2216. "synchronise":[
  2217. null,
  2218. "pick",
  2219. "pick",
  2220. "pick"
  2221. ],
  2222. "result":"pick"
  2223. }
  2224. ]
  2225. }
  2226. }