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.

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