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.

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