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.

1867 lines
65 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":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. "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":4
  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":4
  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":4
  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":4
  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. },
  597. {
  598. "location":"location",
  599. "action":"read",
  600. "guard":{
  601. "exp":{
  602. "op":"∧",
  603. "left":{
  604. "op":"∧",
  605. "left":{
  606. "op":"=",
  607. "left":"s1",
  608. "right":1
  609. },
  610. "right":"u1"
  611. },
  612. "right":{
  613. "op":"<",
  614. "left":"c",
  615. "right":{
  616. "op":"-",
  617. "left":3,
  618. "right":1
  619. }
  620. }
  621. }
  622. },
  623. "destinations":[
  624. {
  625. "probability":{
  626. "exp":1
  627. },
  628. "location":"location",
  629. "assignments":[
  630. {
  631. "ref":"u1",
  632. "value":{
  633. "op":"≠",
  634. "left":"p1",
  635. "right":"v2"
  636. }
  637. },
  638. {
  639. "ref":"v1",
  640. "value":"v2"
  641. }
  642. ]
  643. }
  644. ]
  645. },
  646. {
  647. "location":"location",
  648. "action":"read",
  649. "guard":{
  650. "exp":{
  651. "op":"∧",
  652. "left":{
  653. "op":"∧",
  654. "left":{
  655. "op":"=",
  656. "left":"s1",
  657. "right":1
  658. },
  659. "right":{
  660. "op":"¬",
  661. "exp":"u1"
  662. }
  663. },
  664. "right":{
  665. "op":"<",
  666. "left":"c",
  667. "right":{
  668. "op":"-",
  669. "left":3,
  670. "right":1
  671. }
  672. }
  673. }
  674. },
  675. "destinations":[
  676. {
  677. "probability":{
  678. "exp":1
  679. },
  680. "location":"location",
  681. "assignments":[
  682. {
  683. "ref":"u1",
  684. "value":false
  685. },
  686. {
  687. "ref":"v1",
  688. "value":"v2"
  689. },
  690. {
  691. "ref":"p1",
  692. "value":0
  693. }
  694. ]
  695. }
  696. ]
  697. },
  698. {
  699. "location":"location",
  700. "action":"read",
  701. "guard":{
  702. "exp":{
  703. "op":"∧",
  704. "left":{
  705. "op":"∧",
  706. "left":{
  707. "op":"=",
  708. "left":"s1",
  709. "right":1
  710. },
  711. "right":"u1"
  712. },
  713. "right":{
  714. "op":"=",
  715. "left":"c",
  716. "right":{
  717. "op":"-",
  718. "left":3,
  719. "right":1
  720. }
  721. }
  722. }
  723. },
  724. "destinations":[
  725. {
  726. "probability":{
  727. "exp":1
  728. },
  729. "location":"location",
  730. "assignments":[
  731. {
  732. "ref":"s1",
  733. "value":2
  734. },
  735. {
  736. "ref":"u1",
  737. "value":{
  738. "op":"≠",
  739. "left":"p1",
  740. "right":"v2"
  741. }
  742. },
  743. {
  744. "ref":"v1",
  745. "value":0
  746. },
  747. {
  748. "ref":"p1",
  749. "value":0
  750. }
  751. ]
  752. }
  753. ]
  754. },
  755. {
  756. "location":"location",
  757. "action":"read",
  758. "guard":{
  759. "exp":{
  760. "op":"∧",
  761. "left":{
  762. "op":"∧",
  763. "left":{
  764. "op":"=",
  765. "left":"s1",
  766. "right":1
  767. },
  768. "right":{
  769. "op":"¬",
  770. "exp":"u1"
  771. }
  772. },
  773. "right":{
  774. "op":"=",
  775. "left":"c",
  776. "right":{
  777. "op":"-",
  778. "left":3,
  779. "right":1
  780. }
  781. }
  782. }
  783. },
  784. "destinations":[
  785. {
  786. "probability":{
  787. "exp":1
  788. },
  789. "location":"location",
  790. "assignments":[
  791. {
  792. "ref":"s1",
  793. "value":2
  794. },
  795. {
  796. "ref":"u1",
  797. "value":false
  798. },
  799. {
  800. "ref":"v1",
  801. "value":0
  802. }
  803. ]
  804. }
  805. ]
  806. },
  807. {
  808. "location":"location",
  809. "action":"done",
  810. "guard":{
  811. "exp":{
  812. "op":"=",
  813. "left":"s1",
  814. "right":2
  815. }
  816. },
  817. "destinations":[
  818. {
  819. "probability":{
  820. "exp":1
  821. },
  822. "location":"location",
  823. "assignments":[
  824. {
  825. "ref":"s1",
  826. "value":3
  827. },
  828. {
  829. "ref":"u1",
  830. "value":false
  831. },
  832. {
  833. "ref":"v1",
  834. "value":0
  835. },
  836. {
  837. "ref":"p1",
  838. "value":0
  839. }
  840. ]
  841. }
  842. ]
  843. },
  844. {
  845. "location":"location",
  846. "action":"retry",
  847. "guard":{
  848. "exp":{
  849. "op":"=",
  850. "left":"s1",
  851. "right":2
  852. }
  853. },
  854. "destinations":[
  855. {
  856. "probability":{
  857. "exp":1
  858. },
  859. "location":"location",
  860. "assignments":[
  861. {
  862. "ref":"s1",
  863. "value":0
  864. },
  865. {
  866. "ref":"u1",
  867. "value":false
  868. },
  869. {
  870. "ref":"v1",
  871. "value":0
  872. },
  873. {
  874. "ref":"p1",
  875. "value":0
  876. }
  877. ]
  878. }
  879. ]
  880. },
  881. {
  882. "location":"location",
  883. "action":"loop",
  884. "guard":{
  885. "exp":{
  886. "op":"=",
  887. "left":"s1",
  888. "right":3
  889. }
  890. },
  891. "destinations":[
  892. {
  893. "probability":{
  894. "exp":1
  895. },
  896. "location":"location",
  897. "assignments":[
  898. {
  899. "ref":"s1",
  900. "value":3
  901. }
  902. ]
  903. }
  904. ]
  905. }
  906. ]
  907. },
  908. {
  909. "name":"process2",
  910. "locations":[
  911. {
  912. "name":"location"
  913. }
  914. ],
  915. "initial-locations":[
  916. "location"
  917. ],
  918. "edges":[
  919. {
  920. "location":"location",
  921. "action":"pick",
  922. "guard":{
  923. "exp":{
  924. "op":"=",
  925. "left":"s2",
  926. "right":0
  927. }
  928. },
  929. "destinations":[
  930. {
  931. "probability":{
  932. "exp":{
  933. "op":"/",
  934. "left":1,
  935. "right":4
  936. }
  937. },
  938. "location":"location",
  939. "assignments":[
  940. {
  941. "ref":"s2",
  942. "value":1
  943. },
  944. {
  945. "ref":"p2",
  946. "value":0
  947. },
  948. {
  949. "ref":"v2",
  950. "value":0
  951. },
  952. {
  953. "ref":"u2",
  954. "value":true
  955. }
  956. ]
  957. },
  958. {
  959. "probability":{
  960. "exp":{
  961. "op":"/",
  962. "left":1,
  963. "right":4
  964. }
  965. },
  966. "location":"location",
  967. "assignments":[
  968. {
  969. "ref":"s2",
  970. "value":1
  971. },
  972. {
  973. "ref":"p2",
  974. "value":1
  975. },
  976. {
  977. "ref":"v2",
  978. "value":1
  979. },
  980. {
  981. "ref":"u2",
  982. "value":true
  983. }
  984. ]
  985. },
  986. {
  987. "probability":{
  988. "exp":{
  989. "op":"/",
  990. "left":1,
  991. "right":4
  992. }
  993. },
  994. "location":"location",
  995. "assignments":[
  996. {
  997. "ref":"s2",
  998. "value":1
  999. },
  1000. {
  1001. "ref":"p2",
  1002. "value":2
  1003. },
  1004. {
  1005. "ref":"v2",
  1006. "value":2
  1007. },
  1008. {
  1009. "ref":"u2",
  1010. "value":true
  1011. }
  1012. ]
  1013. },
  1014. {
  1015. "probability":{
  1016. "exp":{
  1017. "op":"/",
  1018. "left":1,
  1019. "right":4
  1020. }
  1021. },
  1022. "location":"location",
  1023. "assignments":[
  1024. {
  1025. "ref":"s2",
  1026. "value":1
  1027. },
  1028. {
  1029. "ref":"p2",
  1030. "value":3
  1031. },
  1032. {
  1033. "ref":"v2",
  1034. "value":3
  1035. },
  1036. {
  1037. "ref":"u2",
  1038. "value":true
  1039. }
  1040. ]
  1041. }
  1042. ]
  1043. },
  1044. {
  1045. "location":"location",
  1046. "action":"read",
  1047. "guard":{
  1048. "exp":{
  1049. "op":"∧",
  1050. "left":{
  1051. "op":"∧",
  1052. "left":{
  1053. "op":"=",
  1054. "left":"s2",
  1055. "right":1
  1056. },
  1057. "right":"u2"
  1058. },
  1059. "right":{
  1060. "op":"<",
  1061. "left":"c",
  1062. "right":{
  1063. "op":"-",
  1064. "left":3,
  1065. "right":1
  1066. }
  1067. }
  1068. }
  1069. },
  1070. "destinations":[
  1071. {
  1072. "probability":{
  1073. "exp":1
  1074. },
  1075. "location":"location",
  1076. "assignments":[
  1077. {
  1078. "ref":"u2",
  1079. "value":{
  1080. "op":"≠",
  1081. "left":"p2",
  1082. "right":"v3"
  1083. }
  1084. },
  1085. {
  1086. "ref":"v2",
  1087. "value":"v3"
  1088. }
  1089. ]
  1090. }
  1091. ]
  1092. },
  1093. {
  1094. "location":"location",
  1095. "action":"read",
  1096. "guard":{
  1097. "exp":{
  1098. "op":"∧",
  1099. "left":{
  1100. "op":"∧",
  1101. "left":{
  1102. "op":"=",
  1103. "left":"s2",
  1104. "right":1
  1105. },
  1106. "right":{
  1107. "op":"¬",
  1108. "exp":"u2"
  1109. }
  1110. },
  1111. "right":{
  1112. "op":"<",
  1113. "left":"c",
  1114. "right":{
  1115. "op":"-",
  1116. "left":3,
  1117. "right":1
  1118. }
  1119. }
  1120. }
  1121. },
  1122. "destinations":[
  1123. {
  1124. "probability":{
  1125. "exp":1
  1126. },
  1127. "location":"location",
  1128. "assignments":[
  1129. {
  1130. "ref":"u2",
  1131. "value":false
  1132. },
  1133. {
  1134. "ref":"v2",
  1135. "value":"v3"
  1136. },
  1137. {
  1138. "ref":"p2",
  1139. "value":0
  1140. }
  1141. ]
  1142. }
  1143. ]
  1144. },
  1145. {
  1146. "location":"location",
  1147. "action":"read",
  1148. "guard":{
  1149. "exp":{
  1150. "op":"∧",
  1151. "left":{
  1152. "op":"∧",
  1153. "left":{
  1154. "op":"=",
  1155. "left":"s2",
  1156. "right":1
  1157. },
  1158. "right":"u2"
  1159. },
  1160. "right":{
  1161. "op":"=",
  1162. "left":"c",
  1163. "right":{
  1164. "op":"-",
  1165. "left":3,
  1166. "right":1
  1167. }
  1168. }
  1169. }
  1170. },
  1171. "destinations":[
  1172. {
  1173. "probability":{
  1174. "exp":1
  1175. },
  1176. "location":"location",
  1177. "assignments":[
  1178. {
  1179. "ref":"s2",
  1180. "value":2
  1181. },
  1182. {
  1183. "ref":"u2",
  1184. "value":{
  1185. "op":"≠",
  1186. "left":"p2",
  1187. "right":"v3"
  1188. }
  1189. },
  1190. {
  1191. "ref":"v2",
  1192. "value":0
  1193. },
  1194. {
  1195. "ref":"p2",
  1196. "value":0
  1197. }
  1198. ]
  1199. }
  1200. ]
  1201. },
  1202. {
  1203. "location":"location",
  1204. "action":"read",
  1205. "guard":{
  1206. "exp":{
  1207. "op":"∧",
  1208. "left":{
  1209. "op":"∧",
  1210. "left":{
  1211. "op":"=",
  1212. "left":"s2",
  1213. "right":1
  1214. },
  1215. "right":{
  1216. "op":"¬",
  1217. "exp":"u2"
  1218. }
  1219. },
  1220. "right":{
  1221. "op":"=",
  1222. "left":"c",
  1223. "right":{
  1224. "op":"-",
  1225. "left":3,
  1226. "right":1
  1227. }
  1228. }
  1229. }
  1230. },
  1231. "destinations":[
  1232. {
  1233. "probability":{
  1234. "exp":1
  1235. },
  1236. "location":"location",
  1237. "assignments":[
  1238. {
  1239. "ref":"s2",
  1240. "value":2
  1241. },
  1242. {
  1243. "ref":"u2",
  1244. "value":false
  1245. },
  1246. {
  1247. "ref":"v2",
  1248. "value":0
  1249. }
  1250. ]
  1251. }
  1252. ]
  1253. },
  1254. {
  1255. "location":"location",
  1256. "action":"done",
  1257. "guard":{
  1258. "exp":{
  1259. "op":"=",
  1260. "left":"s2",
  1261. "right":2
  1262. }
  1263. },
  1264. "destinations":[
  1265. {
  1266. "probability":{
  1267. "exp":1
  1268. },
  1269. "location":"location",
  1270. "assignments":[
  1271. {
  1272. "ref":"s2",
  1273. "value":3
  1274. },
  1275. {
  1276. "ref":"u2",
  1277. "value":false
  1278. },
  1279. {
  1280. "ref":"v2",
  1281. "value":0
  1282. },
  1283. {
  1284. "ref":"p2",
  1285. "value":0
  1286. }
  1287. ]
  1288. }
  1289. ]
  1290. },
  1291. {
  1292. "location":"location",
  1293. "action":"retry",
  1294. "guard":{
  1295. "exp":{
  1296. "op":"=",
  1297. "left":"s2",
  1298. "right":2
  1299. }
  1300. },
  1301. "destinations":[
  1302. {
  1303. "probability":{
  1304. "exp":1
  1305. },
  1306. "location":"location",
  1307. "assignments":[
  1308. {
  1309. "ref":"s2",
  1310. "value":0
  1311. },
  1312. {
  1313. "ref":"u2",
  1314. "value":false
  1315. },
  1316. {
  1317. "ref":"v2",
  1318. "value":0
  1319. },
  1320. {
  1321. "ref":"p2",
  1322. "value":0
  1323. }
  1324. ]
  1325. }
  1326. ]
  1327. },
  1328. {
  1329. "location":"location",
  1330. "action":"loop",
  1331. "guard":{
  1332. "exp":{
  1333. "op":"=",
  1334. "left":"s2",
  1335. "right":3
  1336. }
  1337. },
  1338. "destinations":[
  1339. {
  1340. "probability":{
  1341. "exp":1
  1342. },
  1343. "location":"location",
  1344. "assignments":[
  1345. {
  1346. "ref":"s2",
  1347. "value":3
  1348. }
  1349. ]
  1350. }
  1351. ]
  1352. }
  1353. ]
  1354. },
  1355. {
  1356. "name":"process3",
  1357. "locations":[
  1358. {
  1359. "name":"location"
  1360. }
  1361. ],
  1362. "initial-locations":[
  1363. "location"
  1364. ],
  1365. "edges":[
  1366. {
  1367. "location":"location",
  1368. "action":"pick",
  1369. "guard":{
  1370. "exp":{
  1371. "op":"=",
  1372. "left":"s3",
  1373. "right":0
  1374. }
  1375. },
  1376. "destinations":[
  1377. {
  1378. "probability":{
  1379. "exp":{
  1380. "op":"/",
  1381. "left":1,
  1382. "right":4
  1383. }
  1384. },
  1385. "location":"location",
  1386. "assignments":[
  1387. {
  1388. "ref":"s3",
  1389. "value":1
  1390. },
  1391. {
  1392. "ref":"p3",
  1393. "value":0
  1394. },
  1395. {
  1396. "ref":"v3",
  1397. "value":0
  1398. },
  1399. {
  1400. "ref":"u3",
  1401. "value":true
  1402. }
  1403. ]
  1404. },
  1405. {
  1406. "probability":{
  1407. "exp":{
  1408. "op":"/",
  1409. "left":1,
  1410. "right":4
  1411. }
  1412. },
  1413. "location":"location",
  1414. "assignments":[
  1415. {
  1416. "ref":"s3",
  1417. "value":1
  1418. },
  1419. {
  1420. "ref":"p3",
  1421. "value":1
  1422. },
  1423. {
  1424. "ref":"v3",
  1425. "value":1
  1426. },
  1427. {
  1428. "ref":"u3",
  1429. "value":true
  1430. }
  1431. ]
  1432. },
  1433. {
  1434. "probability":{
  1435. "exp":{
  1436. "op":"/",
  1437. "left":1,
  1438. "right":4
  1439. }
  1440. },
  1441. "location":"location",
  1442. "assignments":[
  1443. {
  1444. "ref":"s3",
  1445. "value":1
  1446. },
  1447. {
  1448. "ref":"p3",
  1449. "value":2
  1450. },
  1451. {
  1452. "ref":"v3",
  1453. "value":2
  1454. },
  1455. {
  1456. "ref":"u3",
  1457. "value":true
  1458. }
  1459. ]
  1460. },
  1461. {
  1462. "probability":{
  1463. "exp":{
  1464. "op":"/",
  1465. "left":1,
  1466. "right":4
  1467. }
  1468. },
  1469. "location":"location",
  1470. "assignments":[
  1471. {
  1472. "ref":"s3",
  1473. "value":1
  1474. },
  1475. {
  1476. "ref":"p3",
  1477. "value":3
  1478. },
  1479. {
  1480. "ref":"v3",
  1481. "value":3
  1482. },
  1483. {
  1484. "ref":"u3",
  1485. "value":true
  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":3,
  1512. "right":1
  1513. }
  1514. }
  1515. }
  1516. },
  1517. "destinations":[
  1518. {
  1519. "probability":{
  1520. "exp":1
  1521. },
  1522. "location":"location",
  1523. "assignments":[
  1524. {
  1525. "ref":"u3",
  1526. "value":{
  1527. "op":"≠",
  1528. "left":"p3",
  1529. "right":"v1"
  1530. }
  1531. },
  1532. {
  1533. "ref":"v3",
  1534. "value":"v1"
  1535. }
  1536. ]
  1537. }
  1538. ]
  1539. },
  1540. {
  1541. "location":"location",
  1542. "action":"read",
  1543. "guard":{
  1544. "exp":{
  1545. "op":"∧",
  1546. "left":{
  1547. "op":"∧",
  1548. "left":{
  1549. "op":"=",
  1550. "left":"s3",
  1551. "right":1
  1552. },
  1553. "right":{
  1554. "op":"¬",
  1555. "exp":"u3"
  1556. }
  1557. },
  1558. "right":{
  1559. "op":"<",
  1560. "left":"c",
  1561. "right":{
  1562. "op":"-",
  1563. "left":3,
  1564. "right":1
  1565. }
  1566. }
  1567. }
  1568. },
  1569. "destinations":[
  1570. {
  1571. "probability":{
  1572. "exp":1
  1573. },
  1574. "location":"location",
  1575. "assignments":[
  1576. {
  1577. "ref":"u3",
  1578. "value":false
  1579. },
  1580. {
  1581. "ref":"v3",
  1582. "value":"v1"
  1583. },
  1584. {
  1585. "ref":"p3",
  1586. "value":0
  1587. }
  1588. ]
  1589. }
  1590. ]
  1591. },
  1592. {
  1593. "location":"location",
  1594. "action":"read",
  1595. "guard":{
  1596. "exp":{
  1597. "op":"∧",
  1598. "left":{
  1599. "op":"∧",
  1600. "left":{
  1601. "op":"=",
  1602. "left":"s3",
  1603. "right":1
  1604. },
  1605. "right":"u3"
  1606. },
  1607. "right":{
  1608. "op":"=",
  1609. "left":"c",
  1610. "right":{
  1611. "op":"-",
  1612. "left":3,
  1613. "right":1
  1614. }
  1615. }
  1616. }
  1617. },
  1618. "destinations":[
  1619. {
  1620. "probability":{
  1621. "exp":1
  1622. },
  1623. "location":"location",
  1624. "assignments":[
  1625. {
  1626. "ref":"s3",
  1627. "value":2
  1628. },
  1629. {
  1630. "ref":"u3",
  1631. "value":{
  1632. "op":"≠",
  1633. "left":"p3",
  1634. "right":"v1"
  1635. }
  1636. },
  1637. {
  1638. "ref":"v3",
  1639. "value":0
  1640. },
  1641. {
  1642. "ref":"p3",
  1643. "value":0
  1644. }
  1645. ]
  1646. }
  1647. ]
  1648. },
  1649. {
  1650. "location":"location",
  1651. "action":"read",
  1652. "guard":{
  1653. "exp":{
  1654. "op":"∧",
  1655. "left":{
  1656. "op":"∧",
  1657. "left":{
  1658. "op":"=",
  1659. "left":"s3",
  1660. "right":1
  1661. },
  1662. "right":{
  1663. "op":"¬",
  1664. "exp":"u3"
  1665. }
  1666. },
  1667. "right":{
  1668. "op":"=",
  1669. "left":"c",
  1670. "right":{
  1671. "op":"-",
  1672. "left":3,
  1673. "right":1
  1674. }
  1675. }
  1676. }
  1677. },
  1678. "destinations":[
  1679. {
  1680. "probability":{
  1681. "exp":1
  1682. },
  1683. "location":"location",
  1684. "assignments":[
  1685. {
  1686. "ref":"s3",
  1687. "value":2
  1688. },
  1689. {
  1690. "ref":"u3",
  1691. "value":false
  1692. },
  1693. {
  1694. "ref":"v3",
  1695. "value":0
  1696. }
  1697. ]
  1698. }
  1699. ]
  1700. },
  1701. {
  1702. "location":"location",
  1703. "action":"done",
  1704. "guard":{
  1705. "exp":{
  1706. "op":"=",
  1707. "left":"s3",
  1708. "right":2
  1709. }
  1710. },
  1711. "destinations":[
  1712. {
  1713. "probability":{
  1714. "exp":1
  1715. },
  1716. "location":"location",
  1717. "assignments":[
  1718. {
  1719. "ref":"s3",
  1720. "value":3
  1721. },
  1722. {
  1723. "ref":"u3",
  1724. "value":false
  1725. },
  1726. {
  1727. "ref":"v3",
  1728. "value":0
  1729. },
  1730. {
  1731. "ref":"p3",
  1732. "value":0
  1733. }
  1734. ]
  1735. }
  1736. ]
  1737. },
  1738. {
  1739. "location":"location",
  1740. "action":"retry",
  1741. "guard":{
  1742. "exp":{
  1743. "op":"=",
  1744. "left":"s3",
  1745. "right":2
  1746. }
  1747. },
  1748. "destinations":[
  1749. {
  1750. "probability":{
  1751. "exp":1
  1752. },
  1753. "location":"location",
  1754. "assignments":[
  1755. {
  1756. "ref":"s3",
  1757. "value":0
  1758. },
  1759. {
  1760. "ref":"u3",
  1761. "value":false
  1762. },
  1763. {
  1764. "ref":"v3",
  1765. "value":0
  1766. },
  1767. {
  1768. "ref":"p3",
  1769. "value":0
  1770. }
  1771. ]
  1772. }
  1773. ]
  1774. },
  1775. {
  1776. "location":"location",
  1777. "action":"loop",
  1778. "guard":{
  1779. "exp":{
  1780. "op":"=",
  1781. "left":"s3",
  1782. "right":3
  1783. }
  1784. },
  1785. "destinations":[
  1786. {
  1787. "probability":{
  1788. "exp":1
  1789. },
  1790. "location":"location",
  1791. "assignments":[
  1792. {
  1793. "ref":"s3",
  1794. "value":3
  1795. }
  1796. ]
  1797. }
  1798. ]
  1799. }
  1800. ]
  1801. }
  1802. ],
  1803. "system":{
  1804. "elements":[
  1805. {
  1806. "automaton":"counter"
  1807. },
  1808. {
  1809. "automaton":"process1"
  1810. },
  1811. {
  1812. "automaton":"process2"
  1813. },
  1814. {
  1815. "automaton":"process3"
  1816. }
  1817. ],
  1818. "syncs":[
  1819. {
  1820. "synchronise":[
  1821. "read",
  1822. "read",
  1823. "read",
  1824. "read"
  1825. ],
  1826. "result":"read"
  1827. },
  1828. {
  1829. "synchronise":[
  1830. "done",
  1831. "done",
  1832. "done",
  1833. "done"
  1834. ],
  1835. "result":"done"
  1836. },
  1837. {
  1838. "synchronise":[
  1839. "retry",
  1840. "retry",
  1841. "retry",
  1842. "retry"
  1843. ],
  1844. "result":"retry"
  1845. },
  1846. {
  1847. "synchronise":[
  1848. "loop",
  1849. "loop",
  1850. "loop",
  1851. "loop"
  1852. ],
  1853. "result":"loop"
  1854. },
  1855. {
  1856. "synchronise":[
  1857. null,
  1858. "pick",
  1859. "pick",
  1860. "pick"
  1861. ],
  1862. "result":"pick"
  1863. }
  1864. ]
  1865. }
  1866. }