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.

2401 lines
86 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":4,
  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":4,
  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":4,
  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":4,
  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":4,
  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":4,
  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":4,
  152. "right":1
  153. }
  154. }
  155. },
  156. {
  157. "name":"s4",
  158. "type":{
  159. "kind":"bounded",
  160. "base":"int",
  161. "lower-bound":0,
  162. "upper-bound":3
  163. }
  164. },
  165. {
  166. "name":"u4",
  167. "type":"bool"
  168. },
  169. {
  170. "name":"v4",
  171. "type":{
  172. "kind":"bounded",
  173. "base":"int",
  174. "lower-bound":0,
  175. "upper-bound":{
  176. "op":"-",
  177. "left":4,
  178. "right":1
  179. }
  180. }
  181. },
  182. {
  183. "name":"p4",
  184. "type":{
  185. "kind":"bounded",
  186. "base":"int",
  187. "lower-bound":0,
  188. "upper-bound":{
  189. "op":"-",
  190. "left":4,
  191. "right":1
  192. }
  193. }
  194. }
  195. ],
  196. "observables":[
  197. {
  198. "name":"\"num_rounds\""
  199. }
  200. ],
  201. "initial-states":{
  202. "exp":{
  203. "op":"∧",
  204. "left":{
  205. "op":"∧",
  206. "left":{
  207. "op":"∧",
  208. "left":{
  209. "op":"∧",
  210. "left":{
  211. "op":"∧",
  212. "left":{
  213. "op":"∧",
  214. "left":{
  215. "op":"∧",
  216. "left":{
  217. "op":"∧",
  218. "left":{
  219. "op":"∧",
  220. "left":{
  221. "op":"∧",
  222. "left":{
  223. "op":"∧",
  224. "left":{
  225. "op":"∧",
  226. "left":{
  227. "op":"∧",
  228. "left":{
  229. "op":"∧",
  230. "left":{
  231. "op":"∧",
  232. "left":{
  233. "op":"∧",
  234. "left":{
  235. "op":"=",
  236. "left":"c",
  237. "right":1
  238. },
  239. "right":{
  240. "op":"=",
  241. "left":"s1",
  242. "right":0
  243. }
  244. },
  245. "right":{
  246. "op":"=",
  247. "left":"u1",
  248. "right":false
  249. }
  250. },
  251. "right":{
  252. "op":"=",
  253. "left":"v1",
  254. "right":0
  255. }
  256. },
  257. "right":{
  258. "op":"=",
  259. "left":"p1",
  260. "right":0
  261. }
  262. },
  263. "right":{
  264. "op":"=",
  265. "left":"s2",
  266. "right":0
  267. }
  268. },
  269. "right":{
  270. "op":"=",
  271. "left":"u2",
  272. "right":false
  273. }
  274. },
  275. "right":{
  276. "op":"=",
  277. "left":"v2",
  278. "right":0
  279. }
  280. },
  281. "right":{
  282. "op":"=",
  283. "left":"p2",
  284. "right":0
  285. }
  286. },
  287. "right":{
  288. "op":"=",
  289. "left":"s3",
  290. "right":0
  291. }
  292. },
  293. "right":{
  294. "op":"=",
  295. "left":"u3",
  296. "right":false
  297. }
  298. },
  299. "right":{
  300. "op":"=",
  301. "left":"v3",
  302. "right":0
  303. }
  304. },
  305. "right":{
  306. "op":"=",
  307. "left":"p3",
  308. "right":0
  309. }
  310. },
  311. "right":{
  312. "op":"=",
  313. "left":"s4",
  314. "right":0
  315. }
  316. },
  317. "right":{
  318. "op":"=",
  319. "left":"u4",
  320. "right":false
  321. }
  322. },
  323. "right":{
  324. "op":"=",
  325. "left":"v4",
  326. "right":0
  327. }
  328. },
  329. "right":{
  330. "op":"=",
  331. "left":"p4",
  332. "right":0
  333. }
  334. }
  335. },
  336. "automata":[
  337. {
  338. "name":"counter",
  339. "locations":[
  340. {
  341. "name":"location"
  342. }
  343. ],
  344. "initial-locations":[
  345. "location"
  346. ],
  347. "edges":[
  348. {
  349. "location":"location",
  350. "action":"read",
  351. "guard":{
  352. "exp":{
  353. "op":"<",
  354. "left":"c",
  355. "right":{
  356. "op":"-",
  357. "left":4,
  358. "right":1
  359. }
  360. }
  361. },
  362. "destinations":[
  363. {
  364. "probability":{
  365. "exp":1
  366. },
  367. "location":"location",
  368. "assignments":[
  369. {
  370. "ref":"c",
  371. "value":{
  372. "op":"+",
  373. "left":"c",
  374. "right":1
  375. }
  376. }
  377. ],
  378. "observables":[
  379. ]
  380. }
  381. ]
  382. },
  383. {
  384. "location":"location",
  385. "action":"read",
  386. "guard":{
  387. "exp":{
  388. "op":"=",
  389. "left":"c",
  390. "right":{
  391. "op":"-",
  392. "left":4,
  393. "right":1
  394. }
  395. }
  396. },
  397. "destinations":[
  398. {
  399. "probability":{
  400. "exp":1
  401. },
  402. "location":"location",
  403. "assignments":[
  404. {
  405. "ref":"c",
  406. "value":"c"
  407. }
  408. ],
  409. "observables":[
  410. ]
  411. }
  412. ]
  413. },
  414. {
  415. "location":"location",
  416. "action":"done",
  417. "guard":{
  418. "exp":{
  419. "op":"∨",
  420. "left":{
  421. "op":"∨",
  422. "left":{
  423. "op":"∨",
  424. "left":"u1",
  425. "right":"u2"
  426. },
  427. "right":"u3"
  428. },
  429. "right":"u4"
  430. }
  431. },
  432. "destinations":[
  433. {
  434. "probability":{
  435. "exp":1
  436. },
  437. "location":"location",
  438. "assignments":[
  439. {
  440. "ref":"c",
  441. "value":"c"
  442. }
  443. ],
  444. "observables":[
  445. ]
  446. }
  447. ]
  448. },
  449. {
  450. "location":"location",
  451. "action":"retry",
  452. "guard":{
  453. "exp":{
  454. "op":"¬",
  455. "exp":{
  456. "op":"∨",
  457. "left":{
  458. "op":"∨",
  459. "left":{
  460. "op":"∨",
  461. "left":"u1",
  462. "right":"u2"
  463. },
  464. "right":"u3"
  465. },
  466. "right":"u4"
  467. }
  468. }
  469. },
  470. "destinations":[
  471. {
  472. "probability":{
  473. "exp":1
  474. },
  475. "location":"location",
  476. "assignments":[
  477. {
  478. "ref":"c",
  479. "value":1
  480. }
  481. ],
  482. "observables":[
  483. ]
  484. }
  485. ]
  486. },
  487. {
  488. "location":"location",
  489. "action":"loop",
  490. "guard":{
  491. "exp":{
  492. "op":"=",
  493. "left":"s1",
  494. "right":3
  495. }
  496. },
  497. "destinations":[
  498. {
  499. "probability":{
  500. "exp":1
  501. },
  502. "location":"location",
  503. "assignments":[
  504. {
  505. "ref":"c",
  506. "value":"c"
  507. }
  508. ],
  509. "observables":[
  510. ]
  511. }
  512. ]
  513. }
  514. ]
  515. },
  516. {
  517. "name":"process1",
  518. "locations":[
  519. {
  520. "name":"location"
  521. }
  522. ],
  523. "initial-locations":[
  524. "location"
  525. ],
  526. "edges":[
  527. {
  528. "location":"location",
  529. "action":"pick",
  530. "guard":{
  531. "exp":{
  532. "op":"=",
  533. "left":"s1",
  534. "right":0
  535. }
  536. },
  537. "destinations":[
  538. {
  539. "probability":{
  540. "exp":{
  541. "op":"/",
  542. "left":1,
  543. "right":4
  544. }
  545. },
  546. "location":"location",
  547. "assignments":[
  548. {
  549. "ref":"s1",
  550. "value":1
  551. },
  552. {
  553. "ref":"p1",
  554. "value":0
  555. },
  556. {
  557. "ref":"v1",
  558. "value":0
  559. },
  560. {
  561. "ref":"u1",
  562. "value":true
  563. }
  564. ],
  565. "observables":[
  566. {
  567. "ref":"\"num_rounds\"",
  568. "value":1
  569. }
  570. ]
  571. },
  572. {
  573. "probability":{
  574. "exp":{
  575. "op":"/",
  576. "left":1,
  577. "right":4
  578. }
  579. },
  580. "location":"location",
  581. "assignments":[
  582. {
  583. "ref":"s1",
  584. "value":1
  585. },
  586. {
  587. "ref":"p1",
  588. "value":1
  589. },
  590. {
  591. "ref":"v1",
  592. "value":1
  593. },
  594. {
  595. "ref":"u1",
  596. "value":true
  597. }
  598. ],
  599. "observables":[
  600. {
  601. "ref":"\"num_rounds\"",
  602. "value":1
  603. }
  604. ]
  605. },
  606. {
  607. "probability":{
  608. "exp":{
  609. "op":"/",
  610. "left":1,
  611. "right":4
  612. }
  613. },
  614. "location":"location",
  615. "assignments":[
  616. {
  617. "ref":"s1",
  618. "value":1
  619. },
  620. {
  621. "ref":"p1",
  622. "value":2
  623. },
  624. {
  625. "ref":"v1",
  626. "value":2
  627. },
  628. {
  629. "ref":"u1",
  630. "value":true
  631. }
  632. ],
  633. "observables":[
  634. {
  635. "ref":"\"num_rounds\"",
  636. "value":1
  637. }
  638. ]
  639. },
  640. {
  641. "probability":{
  642. "exp":{
  643. "op":"/",
  644. "left":1,
  645. "right":4
  646. }
  647. },
  648. "location":"location",
  649. "assignments":[
  650. {
  651. "ref":"s1",
  652. "value":1
  653. },
  654. {
  655. "ref":"p1",
  656. "value":3
  657. },
  658. {
  659. "ref":"v1",
  660. "value":3
  661. },
  662. {
  663. "ref":"u1",
  664. "value":true
  665. }
  666. ],
  667. "observables":[
  668. {
  669. "ref":"\"num_rounds\"",
  670. "value":1
  671. }
  672. ]
  673. }
  674. ]
  675. },
  676. {
  677. "location":"location",
  678. "action":"read",
  679. "guard":{
  680. "exp":{
  681. "op":"∧",
  682. "left":{
  683. "op":"∧",
  684. "left":{
  685. "op":"=",
  686. "left":"s1",
  687. "right":1
  688. },
  689. "right":"u1"
  690. },
  691. "right":{
  692. "op":"<",
  693. "left":"c",
  694. "right":{
  695. "op":"-",
  696. "left":4,
  697. "right":1
  698. }
  699. }
  700. }
  701. },
  702. "destinations":[
  703. {
  704. "probability":{
  705. "exp":1
  706. },
  707. "location":"location",
  708. "assignments":[
  709. {
  710. "ref":"u1",
  711. "value":{
  712. "op":"≠",
  713. "left":"p1",
  714. "right":"v2"
  715. }
  716. },
  717. {
  718. "ref":"v1",
  719. "value":"v2"
  720. }
  721. ]
  722. }
  723. ]
  724. },
  725. {
  726. "location":"location",
  727. "action":"read",
  728. "guard":{
  729. "exp":{
  730. "op":"∧",
  731. "left":{
  732. "op":"∧",
  733. "left":{
  734. "op":"=",
  735. "left":"s1",
  736. "right":1
  737. },
  738. "right":{
  739. "op":"¬",
  740. "exp":"u1"
  741. }
  742. },
  743. "right":{
  744. "op":"<",
  745. "left":"c",
  746. "right":{
  747. "op":"-",
  748. "left":4,
  749. "right":1
  750. }
  751. }
  752. }
  753. },
  754. "destinations":[
  755. {
  756. "probability":{
  757. "exp":1
  758. },
  759. "location":"location",
  760. "assignments":[
  761. {
  762. "ref":"u1",
  763. "value":false
  764. },
  765. {
  766. "ref":"v1",
  767. "value":"v2"
  768. },
  769. {
  770. "ref":"p1",
  771. "value":0
  772. }
  773. ]
  774. }
  775. ]
  776. },
  777. {
  778. "location":"location",
  779. "action":"read",
  780. "guard":{
  781. "exp":{
  782. "op":"∧",
  783. "left":{
  784. "op":"∧",
  785. "left":{
  786. "op":"=",
  787. "left":"s1",
  788. "right":1
  789. },
  790. "right":"u1"
  791. },
  792. "right":{
  793. "op":"=",
  794. "left":"c",
  795. "right":{
  796. "op":"-",
  797. "left":4,
  798. "right":1
  799. }
  800. }
  801. }
  802. },
  803. "destinations":[
  804. {
  805. "probability":{
  806. "exp":1
  807. },
  808. "location":"location",
  809. "assignments":[
  810. {
  811. "ref":"s1",
  812. "value":2
  813. },
  814. {
  815. "ref":"u1",
  816. "value":{
  817. "op":"≠",
  818. "left":"p1",
  819. "right":"v2"
  820. }
  821. },
  822. {
  823. "ref":"v1",
  824. "value":0
  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":{
  848. "op":"¬",
  849. "exp":"u1"
  850. }
  851. },
  852. "right":{
  853. "op":"=",
  854. "left":"c",
  855. "right":{
  856. "op":"-",
  857. "left":4,
  858. "right":1
  859. }
  860. }
  861. }
  862. },
  863. "destinations":[
  864. {
  865. "probability":{
  866. "exp":1
  867. },
  868. "location":"location",
  869. "assignments":[
  870. {
  871. "ref":"s1",
  872. "value":2
  873. },
  874. {
  875. "ref":"u1",
  876. "value":false
  877. },
  878. {
  879. "ref":"v1",
  880. "value":0
  881. }
  882. ]
  883. }
  884. ]
  885. },
  886. {
  887. "location":"location",
  888. "action":"done",
  889. "guard":{
  890. "exp":{
  891. "op":"=",
  892. "left":"s1",
  893. "right":2
  894. }
  895. },
  896. "destinations":[
  897. {
  898. "probability":{
  899. "exp":1
  900. },
  901. "location":"location",
  902. "assignments":[
  903. {
  904. "ref":"s1",
  905. "value":3
  906. },
  907. {
  908. "ref":"u1",
  909. "value":false
  910. },
  911. {
  912. "ref":"v1",
  913. "value":0
  914. },
  915. {
  916. "ref":"p1",
  917. "value":0
  918. }
  919. ]
  920. }
  921. ]
  922. },
  923. {
  924. "location":"location",
  925. "action":"retry",
  926. "guard":{
  927. "exp":{
  928. "op":"=",
  929. "left":"s1",
  930. "right":2
  931. }
  932. },
  933. "destinations":[
  934. {
  935. "probability":{
  936. "exp":1
  937. },
  938. "location":"location",
  939. "assignments":[
  940. {
  941. "ref":"s1",
  942. "value":0
  943. },
  944. {
  945. "ref":"u1",
  946. "value":false
  947. },
  948. {
  949. "ref":"v1",
  950. "value":0
  951. },
  952. {
  953. "ref":"p1",
  954. "value":0
  955. }
  956. ]
  957. }
  958. ]
  959. },
  960. {
  961. "location":"location",
  962. "action":"loop",
  963. "guard":{
  964. "exp":{
  965. "op":"=",
  966. "left":"s1",
  967. "right":3
  968. }
  969. },
  970. "destinations":[
  971. {
  972. "probability":{
  973. "exp":1
  974. },
  975. "location":"location",
  976. "assignments":[
  977. {
  978. "ref":"s1",
  979. "value":3
  980. }
  981. ]
  982. }
  983. ]
  984. }
  985. ]
  986. },
  987. {
  988. "name":"process2",
  989. "locations":[
  990. {
  991. "name":"location"
  992. }
  993. ],
  994. "initial-locations":[
  995. "location"
  996. ],
  997. "edges":[
  998. {
  999. "location":"location",
  1000. "action":"pick",
  1001. "guard":{
  1002. "exp":{
  1003. "op":"=",
  1004. "left":"s2",
  1005. "right":0
  1006. }
  1007. },
  1008. "destinations":[
  1009. {
  1010. "probability":{
  1011. "exp":{
  1012. "op":"/",
  1013. "left":1,
  1014. "right":4
  1015. }
  1016. },
  1017. "location":"location",
  1018. "assignments":[
  1019. {
  1020. "ref":"s2",
  1021. "value":1
  1022. },
  1023. {
  1024. "ref":"p2",
  1025. "value":0
  1026. },
  1027. {
  1028. "ref":"v2",
  1029. "value":0
  1030. },
  1031. {
  1032. "ref":"u2",
  1033. "value":true
  1034. }
  1035. ]
  1036. },
  1037. {
  1038. "probability":{
  1039. "exp":{
  1040. "op":"/",
  1041. "left":1,
  1042. "right":4
  1043. }
  1044. },
  1045. "location":"location",
  1046. "assignments":[
  1047. {
  1048. "ref":"s2",
  1049. "value":1
  1050. },
  1051. {
  1052. "ref":"p2",
  1053. "value":1
  1054. },
  1055. {
  1056. "ref":"v2",
  1057. "value":1
  1058. },
  1059. {
  1060. "ref":"u2",
  1061. "value":true
  1062. }
  1063. ]
  1064. },
  1065. {
  1066. "probability":{
  1067. "exp":{
  1068. "op":"/",
  1069. "left":1,
  1070. "right":4
  1071. }
  1072. },
  1073. "location":"location",
  1074. "assignments":[
  1075. {
  1076. "ref":"s2",
  1077. "value":1
  1078. },
  1079. {
  1080. "ref":"p2",
  1081. "value":2
  1082. },
  1083. {
  1084. "ref":"v2",
  1085. "value":2
  1086. },
  1087. {
  1088. "ref":"u2",
  1089. "value":true
  1090. }
  1091. ]
  1092. },
  1093. {
  1094. "probability":{
  1095. "exp":{
  1096. "op":"/",
  1097. "left":1,
  1098. "right":4
  1099. }
  1100. },
  1101. "location":"location",
  1102. "assignments":[
  1103. {
  1104. "ref":"s2",
  1105. "value":1
  1106. },
  1107. {
  1108. "ref":"p2",
  1109. "value":3
  1110. },
  1111. {
  1112. "ref":"v2",
  1113. "value":3
  1114. },
  1115. {
  1116. "ref":"u2",
  1117. "value":true
  1118. }
  1119. ]
  1120. }
  1121. ]
  1122. },
  1123. {
  1124. "location":"location",
  1125. "action":"read",
  1126. "guard":{
  1127. "exp":{
  1128. "op":"∧",
  1129. "left":{
  1130. "op":"∧",
  1131. "left":{
  1132. "op":"=",
  1133. "left":"s2",
  1134. "right":1
  1135. },
  1136. "right":"u2"
  1137. },
  1138. "right":{
  1139. "op":"<",
  1140. "left":"c",
  1141. "right":{
  1142. "op":"-",
  1143. "left":4,
  1144. "right":1
  1145. }
  1146. }
  1147. }
  1148. },
  1149. "destinations":[
  1150. {
  1151. "probability":{
  1152. "exp":1
  1153. },
  1154. "location":"location",
  1155. "assignments":[
  1156. {
  1157. "ref":"u2",
  1158. "value":{
  1159. "op":"≠",
  1160. "left":"p2",
  1161. "right":"v3"
  1162. }
  1163. },
  1164. {
  1165. "ref":"v2",
  1166. "value":"v3"
  1167. }
  1168. ]
  1169. }
  1170. ]
  1171. },
  1172. {
  1173. "location":"location",
  1174. "action":"read",
  1175. "guard":{
  1176. "exp":{
  1177. "op":"∧",
  1178. "left":{
  1179. "op":"∧",
  1180. "left":{
  1181. "op":"=",
  1182. "left":"s2",
  1183. "right":1
  1184. },
  1185. "right":{
  1186. "op":"¬",
  1187. "exp":"u2"
  1188. }
  1189. },
  1190. "right":{
  1191. "op":"<",
  1192. "left":"c",
  1193. "right":{
  1194. "op":"-",
  1195. "left":4,
  1196. "right":1
  1197. }
  1198. }
  1199. }
  1200. },
  1201. "destinations":[
  1202. {
  1203. "probability":{
  1204. "exp":1
  1205. },
  1206. "location":"location",
  1207. "assignments":[
  1208. {
  1209. "ref":"u2",
  1210. "value":false
  1211. },
  1212. {
  1213. "ref":"v2",
  1214. "value":"v3"
  1215. },
  1216. {
  1217. "ref":"p2",
  1218. "value":0
  1219. }
  1220. ]
  1221. }
  1222. ]
  1223. },
  1224. {
  1225. "location":"location",
  1226. "action":"read",
  1227. "guard":{
  1228. "exp":{
  1229. "op":"∧",
  1230. "left":{
  1231. "op":"∧",
  1232. "left":{
  1233. "op":"=",
  1234. "left":"s2",
  1235. "right":1
  1236. },
  1237. "right":"u2"
  1238. },
  1239. "right":{
  1240. "op":"=",
  1241. "left":"c",
  1242. "right":{
  1243. "op":"-",
  1244. "left":4,
  1245. "right":1
  1246. }
  1247. }
  1248. }
  1249. },
  1250. "destinations":[
  1251. {
  1252. "probability":{
  1253. "exp":1
  1254. },
  1255. "location":"location",
  1256. "assignments":[
  1257. {
  1258. "ref":"s2",
  1259. "value":2
  1260. },
  1261. {
  1262. "ref":"u2",
  1263. "value":{
  1264. "op":"≠",
  1265. "left":"p2",
  1266. "right":"v3"
  1267. }
  1268. },
  1269. {
  1270. "ref":"v2",
  1271. "value":0
  1272. },
  1273. {
  1274. "ref":"p2",
  1275. "value":0
  1276. }
  1277. ]
  1278. }
  1279. ]
  1280. },
  1281. {
  1282. "location":"location",
  1283. "action":"read",
  1284. "guard":{
  1285. "exp":{
  1286. "op":"∧",
  1287. "left":{
  1288. "op":"∧",
  1289. "left":{
  1290. "op":"=",
  1291. "left":"s2",
  1292. "right":1
  1293. },
  1294. "right":{
  1295. "op":"¬",
  1296. "exp":"u2"
  1297. }
  1298. },
  1299. "right":{
  1300. "op":"=",
  1301. "left":"c",
  1302. "right":{
  1303. "op":"-",
  1304. "left":4,
  1305. "right":1
  1306. }
  1307. }
  1308. }
  1309. },
  1310. "destinations":[
  1311. {
  1312. "probability":{
  1313. "exp":1
  1314. },
  1315. "location":"location",
  1316. "assignments":[
  1317. {
  1318. "ref":"s2",
  1319. "value":2
  1320. },
  1321. {
  1322. "ref":"u2",
  1323. "value":false
  1324. },
  1325. {
  1326. "ref":"v2",
  1327. "value":0
  1328. }
  1329. ]
  1330. }
  1331. ]
  1332. },
  1333. {
  1334. "location":"location",
  1335. "action":"done",
  1336. "guard":{
  1337. "exp":{
  1338. "op":"=",
  1339. "left":"s2",
  1340. "right":2
  1341. }
  1342. },
  1343. "destinations":[
  1344. {
  1345. "probability":{
  1346. "exp":1
  1347. },
  1348. "location":"location",
  1349. "assignments":[
  1350. {
  1351. "ref":"s2",
  1352. "value":3
  1353. },
  1354. {
  1355. "ref":"u2",
  1356. "value":false
  1357. },
  1358. {
  1359. "ref":"v2",
  1360. "value":0
  1361. },
  1362. {
  1363. "ref":"p2",
  1364. "value":0
  1365. }
  1366. ]
  1367. }
  1368. ]
  1369. },
  1370. {
  1371. "location":"location",
  1372. "action":"retry",
  1373. "guard":{
  1374. "exp":{
  1375. "op":"=",
  1376. "left":"s2",
  1377. "right":2
  1378. }
  1379. },
  1380. "destinations":[
  1381. {
  1382. "probability":{
  1383. "exp":1
  1384. },
  1385. "location":"location",
  1386. "assignments":[
  1387. {
  1388. "ref":"s2",
  1389. "value":0
  1390. },
  1391. {
  1392. "ref":"u2",
  1393. "value":false
  1394. },
  1395. {
  1396. "ref":"v2",
  1397. "value":0
  1398. },
  1399. {
  1400. "ref":"p2",
  1401. "value":0
  1402. }
  1403. ]
  1404. }
  1405. ]
  1406. },
  1407. {
  1408. "location":"location",
  1409. "action":"loop",
  1410. "guard":{
  1411. "exp":{
  1412. "op":"=",
  1413. "left":"s2",
  1414. "right":3
  1415. }
  1416. },
  1417. "destinations":[
  1418. {
  1419. "probability":{
  1420. "exp":1
  1421. },
  1422. "location":"location",
  1423. "assignments":[
  1424. {
  1425. "ref":"s2",
  1426. "value":3
  1427. }
  1428. ]
  1429. }
  1430. ]
  1431. }
  1432. ]
  1433. },
  1434. {
  1435. "name":"process3",
  1436. "locations":[
  1437. {
  1438. "name":"location"
  1439. }
  1440. ],
  1441. "initial-locations":[
  1442. "location"
  1443. ],
  1444. "edges":[
  1445. {
  1446. "location":"location",
  1447. "action":"pick",
  1448. "guard":{
  1449. "exp":{
  1450. "op":"=",
  1451. "left":"s3",
  1452. "right":0
  1453. }
  1454. },
  1455. "destinations":[
  1456. {
  1457. "probability":{
  1458. "exp":{
  1459. "op":"/",
  1460. "left":1,
  1461. "right":4
  1462. }
  1463. },
  1464. "location":"location",
  1465. "assignments":[
  1466. {
  1467. "ref":"s3",
  1468. "value":1
  1469. },
  1470. {
  1471. "ref":"p3",
  1472. "value":0
  1473. },
  1474. {
  1475. "ref":"v3",
  1476. "value":0
  1477. },
  1478. {
  1479. "ref":"u3",
  1480. "value":true
  1481. }
  1482. ]
  1483. },
  1484. {
  1485. "probability":{
  1486. "exp":{
  1487. "op":"/",
  1488. "left":1,
  1489. "right":4
  1490. }
  1491. },
  1492. "location":"location",
  1493. "assignments":[
  1494. {
  1495. "ref":"s3",
  1496. "value":1
  1497. },
  1498. {
  1499. "ref":"p3",
  1500. "value":1
  1501. },
  1502. {
  1503. "ref":"v3",
  1504. "value":1
  1505. },
  1506. {
  1507. "ref":"u3",
  1508. "value":true
  1509. }
  1510. ]
  1511. },
  1512. {
  1513. "probability":{
  1514. "exp":{
  1515. "op":"/",
  1516. "left":1,
  1517. "right":4
  1518. }
  1519. },
  1520. "location":"location",
  1521. "assignments":[
  1522. {
  1523. "ref":"s3",
  1524. "value":1
  1525. },
  1526. {
  1527. "ref":"p3",
  1528. "value":2
  1529. },
  1530. {
  1531. "ref":"v3",
  1532. "value":2
  1533. },
  1534. {
  1535. "ref":"u3",
  1536. "value":true
  1537. }
  1538. ]
  1539. },
  1540. {
  1541. "probability":{
  1542. "exp":{
  1543. "op":"/",
  1544. "left":1,
  1545. "right":4
  1546. }
  1547. },
  1548. "location":"location",
  1549. "assignments":[
  1550. {
  1551. "ref":"s3",
  1552. "value":1
  1553. },
  1554. {
  1555. "ref":"p3",
  1556. "value":3
  1557. },
  1558. {
  1559. "ref":"v3",
  1560. "value":3
  1561. },
  1562. {
  1563. "ref":"u3",
  1564. "value":true
  1565. }
  1566. ]
  1567. }
  1568. ]
  1569. },
  1570. {
  1571. "location":"location",
  1572. "action":"read",
  1573. "guard":{
  1574. "exp":{
  1575. "op":"∧",
  1576. "left":{
  1577. "op":"∧",
  1578. "left":{
  1579. "op":"=",
  1580. "left":"s3",
  1581. "right":1
  1582. },
  1583. "right":"u3"
  1584. },
  1585. "right":{
  1586. "op":"<",
  1587. "left":"c",
  1588. "right":{
  1589. "op":"-",
  1590. "left":4,
  1591. "right":1
  1592. }
  1593. }
  1594. }
  1595. },
  1596. "destinations":[
  1597. {
  1598. "probability":{
  1599. "exp":1
  1600. },
  1601. "location":"location",
  1602. "assignments":[
  1603. {
  1604. "ref":"u3",
  1605. "value":{
  1606. "op":"≠",
  1607. "left":"p3",
  1608. "right":"v4"
  1609. }
  1610. },
  1611. {
  1612. "ref":"v3",
  1613. "value":"v4"
  1614. }
  1615. ]
  1616. }
  1617. ]
  1618. },
  1619. {
  1620. "location":"location",
  1621. "action":"read",
  1622. "guard":{
  1623. "exp":{
  1624. "op":"∧",
  1625. "left":{
  1626. "op":"∧",
  1627. "left":{
  1628. "op":"=",
  1629. "left":"s3",
  1630. "right":1
  1631. },
  1632. "right":{
  1633. "op":"¬",
  1634. "exp":"u3"
  1635. }
  1636. },
  1637. "right":{
  1638. "op":"<",
  1639. "left":"c",
  1640. "right":{
  1641. "op":"-",
  1642. "left":4,
  1643. "right":1
  1644. }
  1645. }
  1646. }
  1647. },
  1648. "destinations":[
  1649. {
  1650. "probability":{
  1651. "exp":1
  1652. },
  1653. "location":"location",
  1654. "assignments":[
  1655. {
  1656. "ref":"u3",
  1657. "value":false
  1658. },
  1659. {
  1660. "ref":"v3",
  1661. "value":"v4"
  1662. },
  1663. {
  1664. "ref":"p3",
  1665. "value":0
  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":4,
  1692. "right":1
  1693. }
  1694. }
  1695. }
  1696. },
  1697. "destinations":[
  1698. {
  1699. "probability":{
  1700. "exp":1
  1701. },
  1702. "location":"location",
  1703. "assignments":[
  1704. {
  1705. "ref":"s3",
  1706. "value":2
  1707. },
  1708. {
  1709. "ref":"u3",
  1710. "value":{
  1711. "op":"≠",
  1712. "left":"p3",
  1713. "right":"v4"
  1714. }
  1715. },
  1716. {
  1717. "ref":"v3",
  1718. "value":0
  1719. },
  1720. {
  1721. "ref":"p3",
  1722. "value":0
  1723. }
  1724. ]
  1725. }
  1726. ]
  1727. },
  1728. {
  1729. "location":"location",
  1730. "action":"read",
  1731. "guard":{
  1732. "exp":{
  1733. "op":"∧",
  1734. "left":{
  1735. "op":"∧",
  1736. "left":{
  1737. "op":"=",
  1738. "left":"s3",
  1739. "right":1
  1740. },
  1741. "right":{
  1742. "op":"¬",
  1743. "exp":"u3"
  1744. }
  1745. },
  1746. "right":{
  1747. "op":"=",
  1748. "left":"c",
  1749. "right":{
  1750. "op":"-",
  1751. "left":4,
  1752. "right":1
  1753. }
  1754. }
  1755. }
  1756. },
  1757. "destinations":[
  1758. {
  1759. "probability":{
  1760. "exp":1
  1761. },
  1762. "location":"location",
  1763. "assignments":[
  1764. {
  1765. "ref":"s3",
  1766. "value":2
  1767. },
  1768. {
  1769. "ref":"u3",
  1770. "value":false
  1771. },
  1772. {
  1773. "ref":"v3",
  1774. "value":0
  1775. }
  1776. ]
  1777. }
  1778. ]
  1779. },
  1780. {
  1781. "location":"location",
  1782. "action":"done",
  1783. "guard":{
  1784. "exp":{
  1785. "op":"=",
  1786. "left":"s3",
  1787. "right":2
  1788. }
  1789. },
  1790. "destinations":[
  1791. {
  1792. "probability":{
  1793. "exp":1
  1794. },
  1795. "location":"location",
  1796. "assignments":[
  1797. {
  1798. "ref":"s3",
  1799. "value":3
  1800. },
  1801. {
  1802. "ref":"u3",
  1803. "value":false
  1804. },
  1805. {
  1806. "ref":"v3",
  1807. "value":0
  1808. },
  1809. {
  1810. "ref":"p3",
  1811. "value":0
  1812. }
  1813. ]
  1814. }
  1815. ]
  1816. },
  1817. {
  1818. "location":"location",
  1819. "action":"retry",
  1820. "guard":{
  1821. "exp":{
  1822. "op":"=",
  1823. "left":"s3",
  1824. "right":2
  1825. }
  1826. },
  1827. "destinations":[
  1828. {
  1829. "probability":{
  1830. "exp":1
  1831. },
  1832. "location":"location",
  1833. "assignments":[
  1834. {
  1835. "ref":"s3",
  1836. "value":0
  1837. },
  1838. {
  1839. "ref":"u3",
  1840. "value":false
  1841. },
  1842. {
  1843. "ref":"v3",
  1844. "value":0
  1845. },
  1846. {
  1847. "ref":"p3",
  1848. "value":0
  1849. }
  1850. ]
  1851. }
  1852. ]
  1853. },
  1854. {
  1855. "location":"location",
  1856. "action":"loop",
  1857. "guard":{
  1858. "exp":{
  1859. "op":"=",
  1860. "left":"s3",
  1861. "right":3
  1862. }
  1863. },
  1864. "destinations":[
  1865. {
  1866. "probability":{
  1867. "exp":1
  1868. },
  1869. "location":"location",
  1870. "assignments":[
  1871. {
  1872. "ref":"s3",
  1873. "value":3
  1874. }
  1875. ]
  1876. }
  1877. ]
  1878. }
  1879. ]
  1880. },
  1881. {
  1882. "name":"process4",
  1883. "locations":[
  1884. {
  1885. "name":"location"
  1886. }
  1887. ],
  1888. "initial-locations":[
  1889. "location"
  1890. ],
  1891. "edges":[
  1892. {
  1893. "location":"location",
  1894. "action":"pick",
  1895. "guard":{
  1896. "exp":{
  1897. "op":"=",
  1898. "left":"s4",
  1899. "right":0
  1900. }
  1901. },
  1902. "destinations":[
  1903. {
  1904. "probability":{
  1905. "exp":{
  1906. "op":"/",
  1907. "left":1,
  1908. "right":4
  1909. }
  1910. },
  1911. "location":"location",
  1912. "assignments":[
  1913. {
  1914. "ref":"s4",
  1915. "value":1
  1916. },
  1917. {
  1918. "ref":"p4",
  1919. "value":0
  1920. },
  1921. {
  1922. "ref":"v4",
  1923. "value":0
  1924. },
  1925. {
  1926. "ref":"u4",
  1927. "value":true
  1928. }
  1929. ]
  1930. },
  1931. {
  1932. "probability":{
  1933. "exp":{
  1934. "op":"/",
  1935. "left":1,
  1936. "right":4
  1937. }
  1938. },
  1939. "location":"location",
  1940. "assignments":[
  1941. {
  1942. "ref":"s4",
  1943. "value":1
  1944. },
  1945. {
  1946. "ref":"p4",
  1947. "value":1
  1948. },
  1949. {
  1950. "ref":"v4",
  1951. "value":1
  1952. },
  1953. {
  1954. "ref":"u4",
  1955. "value":true
  1956. }
  1957. ]
  1958. },
  1959. {
  1960. "probability":{
  1961. "exp":{
  1962. "op":"/",
  1963. "left":1,
  1964. "right":4
  1965. }
  1966. },
  1967. "location":"location",
  1968. "assignments":[
  1969. {
  1970. "ref":"s4",
  1971. "value":1
  1972. },
  1973. {
  1974. "ref":"p4",
  1975. "value":2
  1976. },
  1977. {
  1978. "ref":"v4",
  1979. "value":2
  1980. },
  1981. {
  1982. "ref":"u4",
  1983. "value":true
  1984. }
  1985. ]
  1986. },
  1987. {
  1988. "probability":{
  1989. "exp":{
  1990. "op":"/",
  1991. "left":1,
  1992. "right":4
  1993. }
  1994. },
  1995. "location":"location",
  1996. "assignments":[
  1997. {
  1998. "ref":"s4",
  1999. "value":1
  2000. },
  2001. {
  2002. "ref":"p4",
  2003. "value":3
  2004. },
  2005. {
  2006. "ref":"v4",
  2007. "value":3
  2008. },
  2009. {
  2010. "ref":"u4",
  2011. "value":true
  2012. }
  2013. ]
  2014. }
  2015. ]
  2016. },
  2017. {
  2018. "location":"location",
  2019. "action":"read",
  2020. "guard":{
  2021. "exp":{
  2022. "op":"∧",
  2023. "left":{
  2024. "op":"∧",
  2025. "left":{
  2026. "op":"=",
  2027. "left":"s4",
  2028. "right":1
  2029. },
  2030. "right":"u4"
  2031. },
  2032. "right":{
  2033. "op":"<",
  2034. "left":"c",
  2035. "right":{
  2036. "op":"-",
  2037. "left":4,
  2038. "right":1
  2039. }
  2040. }
  2041. }
  2042. },
  2043. "destinations":[
  2044. {
  2045. "probability":{
  2046. "exp":1
  2047. },
  2048. "location":"location",
  2049. "assignments":[
  2050. {
  2051. "ref":"u4",
  2052. "value":{
  2053. "op":"≠",
  2054. "left":"p4",
  2055. "right":"v1"
  2056. }
  2057. },
  2058. {
  2059. "ref":"v4",
  2060. "value":"v1"
  2061. }
  2062. ]
  2063. }
  2064. ]
  2065. },
  2066. {
  2067. "location":"location",
  2068. "action":"read",
  2069. "guard":{
  2070. "exp":{
  2071. "op":"∧",
  2072. "left":{
  2073. "op":"∧",
  2074. "left":{
  2075. "op":"=",
  2076. "left":"s4",
  2077. "right":1
  2078. },
  2079. "right":{
  2080. "op":"¬",
  2081. "exp":"u4"
  2082. }
  2083. },
  2084. "right":{
  2085. "op":"<",
  2086. "left":"c",
  2087. "right":{
  2088. "op":"-",
  2089. "left":4,
  2090. "right":1
  2091. }
  2092. }
  2093. }
  2094. },
  2095. "destinations":[
  2096. {
  2097. "probability":{
  2098. "exp":1
  2099. },
  2100. "location":"location",
  2101. "assignments":[
  2102. {
  2103. "ref":"u4",
  2104. "value":false
  2105. },
  2106. {
  2107. "ref":"v4",
  2108. "value":"v1"
  2109. },
  2110. {
  2111. "ref":"p4",
  2112. "value":0
  2113. }
  2114. ]
  2115. }
  2116. ]
  2117. },
  2118. {
  2119. "location":"location",
  2120. "action":"read",
  2121. "guard":{
  2122. "exp":{
  2123. "op":"∧",
  2124. "left":{
  2125. "op":"∧",
  2126. "left":{
  2127. "op":"=",
  2128. "left":"s4",
  2129. "right":1
  2130. },
  2131. "right":"u4"
  2132. },
  2133. "right":{
  2134. "op":"=",
  2135. "left":"c",
  2136. "right":{
  2137. "op":"-",
  2138. "left":4,
  2139. "right":1
  2140. }
  2141. }
  2142. }
  2143. },
  2144. "destinations":[
  2145. {
  2146. "probability":{
  2147. "exp":1
  2148. },
  2149. "location":"location",
  2150. "assignments":[
  2151. {
  2152. "ref":"s4",
  2153. "value":2
  2154. },
  2155. {
  2156. "ref":"u4",
  2157. "value":{
  2158. "op":"≠",
  2159. "left":"p4",
  2160. "right":"v1"
  2161. }
  2162. },
  2163. {
  2164. "ref":"v4",
  2165. "value":0
  2166. },
  2167. {
  2168. "ref":"p4",
  2169. "value":0
  2170. }
  2171. ]
  2172. }
  2173. ]
  2174. },
  2175. {
  2176. "location":"location",
  2177. "action":"read",
  2178. "guard":{
  2179. "exp":{
  2180. "op":"∧",
  2181. "left":{
  2182. "op":"∧",
  2183. "left":{
  2184. "op":"=",
  2185. "left":"s4",
  2186. "right":1
  2187. },
  2188. "right":{
  2189. "op":"¬",
  2190. "exp":"u4"
  2191. }
  2192. },
  2193. "right":{
  2194. "op":"=",
  2195. "left":"c",
  2196. "right":{
  2197. "op":"-",
  2198. "left":4,
  2199. "right":1
  2200. }
  2201. }
  2202. }
  2203. },
  2204. "destinations":[
  2205. {
  2206. "probability":{
  2207. "exp":1
  2208. },
  2209. "location":"location",
  2210. "assignments":[
  2211. {
  2212. "ref":"s4",
  2213. "value":2
  2214. },
  2215. {
  2216. "ref":"u4",
  2217. "value":false
  2218. },
  2219. {
  2220. "ref":"v4",
  2221. "value":0
  2222. }
  2223. ]
  2224. }
  2225. ]
  2226. },
  2227. {
  2228. "location":"location",
  2229. "action":"done",
  2230. "guard":{
  2231. "exp":{
  2232. "op":"=",
  2233. "left":"s4",
  2234. "right":2
  2235. }
  2236. },
  2237. "destinations":[
  2238. {
  2239. "probability":{
  2240. "exp":1
  2241. },
  2242. "location":"location",
  2243. "assignments":[
  2244. {
  2245. "ref":"s4",
  2246. "value":3
  2247. },
  2248. {
  2249. "ref":"u4",
  2250. "value":false
  2251. },
  2252. {
  2253. "ref":"v4",
  2254. "value":0
  2255. },
  2256. {
  2257. "ref":"p4",
  2258. "value":0
  2259. }
  2260. ]
  2261. }
  2262. ]
  2263. },
  2264. {
  2265. "location":"location",
  2266. "action":"retry",
  2267. "guard":{
  2268. "exp":{
  2269. "op":"=",
  2270. "left":"s4",
  2271. "right":2
  2272. }
  2273. },
  2274. "destinations":[
  2275. {
  2276. "probability":{
  2277. "exp":1
  2278. },
  2279. "location":"location",
  2280. "assignments":[
  2281. {
  2282. "ref":"s4",
  2283. "value":0
  2284. },
  2285. {
  2286. "ref":"u4",
  2287. "value":false
  2288. },
  2289. {
  2290. "ref":"v4",
  2291. "value":0
  2292. },
  2293. {
  2294. "ref":"p4",
  2295. "value":0
  2296. }
  2297. ]
  2298. }
  2299. ]
  2300. },
  2301. {
  2302. "location":"location",
  2303. "action":"loop",
  2304. "guard":{
  2305. "exp":{
  2306. "op":"=",
  2307. "left":"s4",
  2308. "right":3
  2309. }
  2310. },
  2311. "destinations":[
  2312. {
  2313. "probability":{
  2314. "exp":1
  2315. },
  2316. "location":"location",
  2317. "assignments":[
  2318. {
  2319. "ref":"s4",
  2320. "value":3
  2321. }
  2322. ]
  2323. }
  2324. ]
  2325. }
  2326. ]
  2327. }
  2328. ],
  2329. "system":{
  2330. "elements":[
  2331. {
  2332. "automaton":"counter"
  2333. },
  2334. {
  2335. "automaton":"process1"
  2336. },
  2337. {
  2338. "automaton":"process2"
  2339. },
  2340. {
  2341. "automaton":"process3"
  2342. },
  2343. {
  2344. "automaton":"process4"
  2345. }
  2346. ],
  2347. "syncs":[
  2348. {
  2349. "synchronise":[
  2350. "read",
  2351. "read",
  2352. "read",
  2353. "read",
  2354. "read"
  2355. ],
  2356. "result":"read"
  2357. },
  2358. {
  2359. "synchronise":[
  2360. "done",
  2361. "done",
  2362. "done",
  2363. "done",
  2364. "done"
  2365. ],
  2366. "result":"done"
  2367. },
  2368. {
  2369. "synchronise":[
  2370. "retry",
  2371. "retry",
  2372. "retry",
  2373. "retry",
  2374. "retry"
  2375. ],
  2376. "result":"retry"
  2377. },
  2378. {
  2379. "synchronise":[
  2380. "loop",
  2381. "loop",
  2382. "loop",
  2383. "loop",
  2384. "loop"
  2385. ],
  2386. "result":"loop"
  2387. },
  2388. {
  2389. "synchronise":[
  2390. null,
  2391. "pick",
  2392. "pick",
  2393. "pick",
  2394. "pick"
  2395. ],
  2396. "result":"pick"
  2397. }
  2398. ]
  2399. }
  2400. }