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.

1723 lines
61 KiB

  1. {
  2. "jani-version":1,
  3. "features":[
  4. "derived-operators"
  5. ],
  6. "name":"Converted from PRISM by IscasMC",
  7. "type":"mdp",
  8. "actions":[
  9. {
  10. "name":"tau__"
  11. },
  12. {
  13. "name":"done"
  14. }
  15. ],
  16. "constants":[
  17. {
  18. "name":"K",
  19. "type":"int"
  20. }
  21. ],
  22. "variables":[
  23. {
  24. "name":"counter",
  25. "type":{
  26. "kind":"bounded",
  27. "base":"int",
  28. "lower-bound":0,
  29. "upper-bound":{
  30. "op":"*",
  31. "left":{
  32. "op":"*",
  33. "left":2,
  34. "right":{
  35. "op":"+",
  36. "left":"K",
  37. "right":1
  38. }
  39. },
  40. "right":4
  41. }
  42. }
  43. },
  44. {
  45. "name":"pc1",
  46. "type":{
  47. "kind":"bounded",
  48. "base":"int",
  49. "lower-bound":0,
  50. "upper-bound":3
  51. }
  52. },
  53. {
  54. "name":"coin1",
  55. "type":{
  56. "kind":"bounded",
  57. "base":"int",
  58. "lower-bound":0,
  59. "upper-bound":1
  60. }
  61. },
  62. {
  63. "name":"pc2",
  64. "type":{
  65. "kind":"bounded",
  66. "base":"int",
  67. "lower-bound":0,
  68. "upper-bound":3
  69. }
  70. },
  71. {
  72. "name":"coin2",
  73. "type":{
  74. "kind":"bounded",
  75. "base":"int",
  76. "lower-bound":0,
  77. "upper-bound":1
  78. }
  79. },
  80. {
  81. "name":"pc3",
  82. "type":{
  83. "kind":"bounded",
  84. "base":"int",
  85. "lower-bound":0,
  86. "upper-bound":3
  87. }
  88. },
  89. {
  90. "name":"coin3",
  91. "type":{
  92. "kind":"bounded",
  93. "base":"int",
  94. "lower-bound":0,
  95. "upper-bound":1
  96. }
  97. },
  98. {
  99. "name":"pc4",
  100. "type":{
  101. "kind":"bounded",
  102. "base":"int",
  103. "lower-bound":0,
  104. "upper-bound":3
  105. }
  106. },
  107. {
  108. "name":"coin4",
  109. "type":{
  110. "kind":"bounded",
  111. "base":"int",
  112. "lower-bound":0,
  113. "upper-bound":1
  114. }
  115. }
  116. ],
  117. "observables":[
  118. {
  119. "name":"\"steps\""
  120. }
  121. ],
  122. "initial-states":{
  123. "exp":{
  124. "op":"∧",
  125. "left":{
  126. "op":"∧",
  127. "left":{
  128. "op":"∧",
  129. "left":{
  130. "op":"∧",
  131. "left":{
  132. "op":"∧",
  133. "left":{
  134. "op":"∧",
  135. "left":{
  136. "op":"∧",
  137. "left":{
  138. "op":"∧",
  139. "left":{
  140. "op":"=",
  141. "left":"counter",
  142. "right":{
  143. "op":"*",
  144. "left":{
  145. "op":"+",
  146. "left":"K",
  147. "right":1
  148. },
  149. "right":4
  150. }
  151. },
  152. "right":{
  153. "op":"=",
  154. "left":"pc1",
  155. "right":0
  156. }
  157. },
  158. "right":{
  159. "op":"=",
  160. "left":"coin1",
  161. "right":0
  162. }
  163. },
  164. "right":{
  165. "op":"=",
  166. "left":"pc2",
  167. "right":0
  168. }
  169. },
  170. "right":{
  171. "op":"=",
  172. "left":"coin2",
  173. "right":0
  174. }
  175. },
  176. "right":{
  177. "op":"=",
  178. "left":"pc3",
  179. "right":0
  180. }
  181. },
  182. "right":{
  183. "op":"=",
  184. "left":"coin3",
  185. "right":0
  186. }
  187. },
  188. "right":{
  189. "op":"=",
  190. "left":"pc4",
  191. "right":0
  192. }
  193. },
  194. "right":{
  195. "op":"=",
  196. "left":"coin4",
  197. "right":0
  198. }
  199. }
  200. },
  201. "automata":[
  202. {
  203. "name":"process1",
  204. "locations":[
  205. {
  206. "name":"location",
  207. "observables":[
  208. {
  209. "ref":"\"steps\"",
  210. "value":1
  211. }
  212. ]
  213. }
  214. ],
  215. "initial-locations":[
  216. "location"
  217. ],
  218. "edges":[
  219. {
  220. "location":"location",
  221. "action":"tau__",
  222. "guard":{
  223. "exp":{
  224. "op":"=",
  225. "left":"pc1",
  226. "right":0
  227. }
  228. },
  229. "destinations":[
  230. {
  231. "probability":{
  232. "exp":0.5000000
  233. },
  234. "location":"location",
  235. "assignments":[
  236. {
  237. "ref":"coin1",
  238. "value":0
  239. },
  240. {
  241. "ref":"pc1",
  242. "value":1
  243. }
  244. ],
  245. "observables":[
  246. ]
  247. },
  248. {
  249. "probability":{
  250. "exp":0.5000000
  251. },
  252. "location":"location",
  253. "assignments":[
  254. {
  255. "ref":"coin1",
  256. "value":1
  257. },
  258. {
  259. "ref":"pc1",
  260. "value":1
  261. }
  262. ],
  263. "observables":[
  264. ]
  265. }
  266. ]
  267. },
  268. {
  269. "location":"location",
  270. "action":"tau__",
  271. "guard":{
  272. "exp":{
  273. "op":"∧",
  274. "left":{
  275. "op":"∧",
  276. "left":{
  277. "op":"=",
  278. "left":"pc1",
  279. "right":1
  280. },
  281. "right":{
  282. "op":"=",
  283. "left":"coin1",
  284. "right":0
  285. }
  286. },
  287. "right":{
  288. "op":">",
  289. "left":"counter",
  290. "right":0
  291. }
  292. }
  293. },
  294. "destinations":[
  295. {
  296. "probability":{
  297. "exp":1
  298. },
  299. "location":"location",
  300. "assignments":[
  301. {
  302. "ref":"counter",
  303. "value":{
  304. "op":"-",
  305. "left":"counter",
  306. "right":1
  307. }
  308. },
  309. {
  310. "ref":"pc1",
  311. "value":2
  312. },
  313. {
  314. "ref":"coin1",
  315. "value":0
  316. }
  317. ],
  318. "observables":[
  319. ]
  320. }
  321. ]
  322. },
  323. {
  324. "location":"location",
  325. "action":"tau__",
  326. "guard":{
  327. "exp":{
  328. "op":"∧",
  329. "left":{
  330. "op":"∧",
  331. "left":{
  332. "op":"=",
  333. "left":"pc1",
  334. "right":1
  335. },
  336. "right":{
  337. "op":"=",
  338. "left":"coin1",
  339. "right":1
  340. }
  341. },
  342. "right":{
  343. "op":"<",
  344. "left":"counter",
  345. "right":{
  346. "op":"*",
  347. "left":{
  348. "op":"*",
  349. "left":2,
  350. "right":{
  351. "op":"+",
  352. "left":"K",
  353. "right":1
  354. }
  355. },
  356. "right":4
  357. }
  358. }
  359. }
  360. },
  361. "destinations":[
  362. {
  363. "probability":{
  364. "exp":1
  365. },
  366. "location":"location",
  367. "assignments":[
  368. {
  369. "ref":"counter",
  370. "value":{
  371. "op":"+",
  372. "left":"counter",
  373. "right":1
  374. }
  375. },
  376. {
  377. "ref":"pc1",
  378. "value":2
  379. },
  380. {
  381. "ref":"coin1",
  382. "value":0
  383. }
  384. ],
  385. "observables":[
  386. ]
  387. }
  388. ]
  389. },
  390. {
  391. "location":"location",
  392. "action":"tau__",
  393. "guard":{
  394. "exp":{
  395. "op":"∧",
  396. "left":{
  397. "op":"=",
  398. "left":"pc1",
  399. "right":2
  400. },
  401. "right":{
  402. "op":"≤",
  403. "left":"counter",
  404. "right":4
  405. }
  406. }
  407. },
  408. "destinations":[
  409. {
  410. "probability":{
  411. "exp":1
  412. },
  413. "location":"location",
  414. "assignments":[
  415. {
  416. "ref":"pc1",
  417. "value":3
  418. },
  419. {
  420. "ref":"coin1",
  421. "value":0
  422. }
  423. ],
  424. "observables":[
  425. ]
  426. }
  427. ]
  428. },
  429. {
  430. "location":"location",
  431. "action":"tau__",
  432. "guard":{
  433. "exp":{
  434. "op":"∧",
  435. "left":{
  436. "op":"=",
  437. "left":"pc1",
  438. "right":2
  439. },
  440. "right":{
  441. "op":"≥",
  442. "left":"counter",
  443. "right":{
  444. "op":"-",
  445. "left":{
  446. "op":"*",
  447. "left":{
  448. "op":"*",
  449. "left":2,
  450. "right":{
  451. "op":"+",
  452. "left":"K",
  453. "right":1
  454. }
  455. },
  456. "right":4
  457. },
  458. "right":4
  459. }
  460. }
  461. }
  462. },
  463. "destinations":[
  464. {
  465. "probability":{
  466. "exp":1
  467. },
  468. "location":"location",
  469. "assignments":[
  470. {
  471. "ref":"pc1",
  472. "value":3
  473. },
  474. {
  475. "ref":"coin1",
  476. "value":1
  477. }
  478. ],
  479. "observables":[
  480. ]
  481. }
  482. ]
  483. },
  484. {
  485. "location":"location",
  486. "action":"tau__",
  487. "guard":{
  488. "exp":{
  489. "op":"∧",
  490. "left":{
  491. "op":"∧",
  492. "left":{
  493. "op":"=",
  494. "left":"pc1",
  495. "right":2
  496. },
  497. "right":{
  498. "op":">",
  499. "left":"counter",
  500. "right":4
  501. }
  502. },
  503. "right":{
  504. "op":"<",
  505. "left":"counter",
  506. "right":{
  507. "op":"-",
  508. "left":{
  509. "op":"*",
  510. "left":{
  511. "op":"*",
  512. "left":2,
  513. "right":{
  514. "op":"+",
  515. "left":"K",
  516. "right":1
  517. }
  518. },
  519. "right":4
  520. },
  521. "right":4
  522. }
  523. }
  524. }
  525. },
  526. "destinations":[
  527. {
  528. "probability":{
  529. "exp":1
  530. },
  531. "location":"location",
  532. "assignments":[
  533. {
  534. "ref":"pc1",
  535. "value":0
  536. }
  537. ],
  538. "observables":[
  539. ]
  540. }
  541. ]
  542. },
  543. {
  544. "location":"location",
  545. "action":"done",
  546. "guard":{
  547. "exp":{
  548. "op":"=",
  549. "left":"pc1",
  550. "right":3
  551. }
  552. },
  553. "destinations":[
  554. {
  555. "probability":{
  556. "exp":1
  557. },
  558. "location":"location",
  559. "assignments":[
  560. {
  561. "ref":"pc1",
  562. "value":3
  563. }
  564. ],
  565. "observables":[
  566. ]
  567. }
  568. ]
  569. }
  570. ]
  571. },
  572. {
  573. "name":"process2",
  574. "locations":[
  575. {
  576. "name":"location"
  577. }
  578. ],
  579. "initial-locations":[
  580. "location"
  581. ],
  582. "edges":[
  583. {
  584. "location":"location",
  585. "action":"tau__",
  586. "guard":{
  587. "exp":{
  588. "op":"=",
  589. "left":"pc2",
  590. "right":0
  591. }
  592. },
  593. "destinations":[
  594. {
  595. "probability":{
  596. "exp":0.5000000
  597. },
  598. "location":"location",
  599. "assignments":[
  600. {
  601. "ref":"coin2",
  602. "value":0
  603. },
  604. {
  605. "ref":"pc2",
  606. "value":1
  607. }
  608. ],
  609. "observables":[
  610. ]
  611. },
  612. {
  613. "probability":{
  614. "exp":0.5000000
  615. },
  616. "location":"location",
  617. "assignments":[
  618. {
  619. "ref":"coin2",
  620. "value":1
  621. },
  622. {
  623. "ref":"pc2",
  624. "value":1
  625. }
  626. ],
  627. "observables":[
  628. ]
  629. }
  630. ]
  631. },
  632. {
  633. "location":"location",
  634. "action":"tau__",
  635. "guard":{
  636. "exp":{
  637. "op":"∧",
  638. "left":{
  639. "op":"∧",
  640. "left":{
  641. "op":"=",
  642. "left":"pc2",
  643. "right":1
  644. },
  645. "right":{
  646. "op":"=",
  647. "left":"coin2",
  648. "right":0
  649. }
  650. },
  651. "right":{
  652. "op":">",
  653. "left":"counter",
  654. "right":0
  655. }
  656. }
  657. },
  658. "destinations":[
  659. {
  660. "probability":{
  661. "exp":1
  662. },
  663. "location":"location",
  664. "assignments":[
  665. {
  666. "ref":"counter",
  667. "value":{
  668. "op":"-",
  669. "left":"counter",
  670. "right":1
  671. }
  672. },
  673. {
  674. "ref":"pc2",
  675. "value":2
  676. },
  677. {
  678. "ref":"coin2",
  679. "value":0
  680. }
  681. ],
  682. "observables":[
  683. ]
  684. }
  685. ]
  686. },
  687. {
  688. "location":"location",
  689. "action":"tau__",
  690. "guard":{
  691. "exp":{
  692. "op":"∧",
  693. "left":{
  694. "op":"∧",
  695. "left":{
  696. "op":"=",
  697. "left":"pc2",
  698. "right":1
  699. },
  700. "right":{
  701. "op":"=",
  702. "left":"coin2",
  703. "right":1
  704. }
  705. },
  706. "right":{
  707. "op":"<",
  708. "left":"counter",
  709. "right":{
  710. "op":"*",
  711. "left":{
  712. "op":"*",
  713. "left":2,
  714. "right":{
  715. "op":"+",
  716. "left":"K",
  717. "right":1
  718. }
  719. },
  720. "right":4
  721. }
  722. }
  723. }
  724. },
  725. "destinations":[
  726. {
  727. "probability":{
  728. "exp":1
  729. },
  730. "location":"location",
  731. "assignments":[
  732. {
  733. "ref":"counter",
  734. "value":{
  735. "op":"+",
  736. "left":"counter",
  737. "right":1
  738. }
  739. },
  740. {
  741. "ref":"pc2",
  742. "value":2
  743. },
  744. {
  745. "ref":"coin2",
  746. "value":0
  747. }
  748. ],
  749. "observables":[
  750. ]
  751. }
  752. ]
  753. },
  754. {
  755. "location":"location",
  756. "action":"tau__",
  757. "guard":{
  758. "exp":{
  759. "op":"∧",
  760. "left":{
  761. "op":"=",
  762. "left":"pc2",
  763. "right":2
  764. },
  765. "right":{
  766. "op":"≤",
  767. "left":"counter",
  768. "right":4
  769. }
  770. }
  771. },
  772. "destinations":[
  773. {
  774. "probability":{
  775. "exp":1
  776. },
  777. "location":"location",
  778. "assignments":[
  779. {
  780. "ref":"pc2",
  781. "value":3
  782. },
  783. {
  784. "ref":"coin2",
  785. "value":0
  786. }
  787. ],
  788. "observables":[
  789. ]
  790. }
  791. ]
  792. },
  793. {
  794. "location":"location",
  795. "action":"tau__",
  796. "guard":{
  797. "exp":{
  798. "op":"∧",
  799. "left":{
  800. "op":"=",
  801. "left":"pc2",
  802. "right":2
  803. },
  804. "right":{
  805. "op":"≥",
  806. "left":"counter",
  807. "right":{
  808. "op":"-",
  809. "left":{
  810. "op":"*",
  811. "left":{
  812. "op":"*",
  813. "left":2,
  814. "right":{
  815. "op":"+",
  816. "left":"K",
  817. "right":1
  818. }
  819. },
  820. "right":4
  821. },
  822. "right":4
  823. }
  824. }
  825. }
  826. },
  827. "destinations":[
  828. {
  829. "probability":{
  830. "exp":1
  831. },
  832. "location":"location",
  833. "assignments":[
  834. {
  835. "ref":"pc2",
  836. "value":3
  837. },
  838. {
  839. "ref":"coin2",
  840. "value":1
  841. }
  842. ],
  843. "observables":[
  844. ]
  845. }
  846. ]
  847. },
  848. {
  849. "location":"location",
  850. "action":"tau__",
  851. "guard":{
  852. "exp":{
  853. "op":"∧",
  854. "left":{
  855. "op":"∧",
  856. "left":{
  857. "op":"=",
  858. "left":"pc2",
  859. "right":2
  860. },
  861. "right":{
  862. "op":">",
  863. "left":"counter",
  864. "right":4
  865. }
  866. },
  867. "right":{
  868. "op":"<",
  869. "left":"counter",
  870. "right":{
  871. "op":"-",
  872. "left":{
  873. "op":"*",
  874. "left":{
  875. "op":"*",
  876. "left":2,
  877. "right":{
  878. "op":"+",
  879. "left":"K",
  880. "right":1
  881. }
  882. },
  883. "right":4
  884. },
  885. "right":4
  886. }
  887. }
  888. }
  889. },
  890. "destinations":[
  891. {
  892. "probability":{
  893. "exp":1
  894. },
  895. "location":"location",
  896. "assignments":[
  897. {
  898. "ref":"pc2",
  899. "value":0
  900. }
  901. ],
  902. "observables":[
  903. ]
  904. }
  905. ]
  906. },
  907. {
  908. "location":"location",
  909. "action":"done",
  910. "guard":{
  911. "exp":{
  912. "op":"=",
  913. "left":"pc2",
  914. "right":3
  915. }
  916. },
  917. "destinations":[
  918. {
  919. "probability":{
  920. "exp":1
  921. },
  922. "location":"location",
  923. "assignments":[
  924. {
  925. "ref":"pc2",
  926. "value":3
  927. }
  928. ]
  929. }
  930. ]
  931. }
  932. ]
  933. },
  934. {
  935. "name":"process3",
  936. "locations":[
  937. {
  938. "name":"location"
  939. }
  940. ],
  941. "initial-locations":[
  942. "location"
  943. ],
  944. "edges":[
  945. {
  946. "location":"location",
  947. "action":"tau__",
  948. "guard":{
  949. "exp":{
  950. "op":"=",
  951. "left":"pc3",
  952. "right":0
  953. }
  954. },
  955. "destinations":[
  956. {
  957. "probability":{
  958. "exp":0.5000000
  959. },
  960. "location":"location",
  961. "assignments":[
  962. {
  963. "ref":"coin3",
  964. "value":0
  965. },
  966. {
  967. "ref":"pc3",
  968. "value":1
  969. }
  970. ],
  971. "observables":[
  972. ]
  973. },
  974. {
  975. "probability":{
  976. "exp":0.5000000
  977. },
  978. "location":"location",
  979. "assignments":[
  980. {
  981. "ref":"coin3",
  982. "value":1
  983. },
  984. {
  985. "ref":"pc3",
  986. "value":1
  987. }
  988. ],
  989. "observables":[
  990. ]
  991. }
  992. ]
  993. },
  994. {
  995. "location":"location",
  996. "action":"tau__",
  997. "guard":{
  998. "exp":{
  999. "op":"∧",
  1000. "left":{
  1001. "op":"∧",
  1002. "left":{
  1003. "op":"=",
  1004. "left":"pc3",
  1005. "right":1
  1006. },
  1007. "right":{
  1008. "op":"=",
  1009. "left":"coin3",
  1010. "right":0
  1011. }
  1012. },
  1013. "right":{
  1014. "op":">",
  1015. "left":"counter",
  1016. "right":0
  1017. }
  1018. }
  1019. },
  1020. "destinations":[
  1021. {
  1022. "probability":{
  1023. "exp":1
  1024. },
  1025. "location":"location",
  1026. "assignments":[
  1027. {
  1028. "ref":"counter",
  1029. "value":{
  1030. "op":"-",
  1031. "left":"counter",
  1032. "right":1
  1033. }
  1034. },
  1035. {
  1036. "ref":"pc3",
  1037. "value":2
  1038. },
  1039. {
  1040. "ref":"coin3",
  1041. "value":0
  1042. }
  1043. ],
  1044. "observables":[
  1045. ]
  1046. }
  1047. ]
  1048. },
  1049. {
  1050. "location":"location",
  1051. "action":"tau__",
  1052. "guard":{
  1053. "exp":{
  1054. "op":"∧",
  1055. "left":{
  1056. "op":"∧",
  1057. "left":{
  1058. "op":"=",
  1059. "left":"pc3",
  1060. "right":1
  1061. },
  1062. "right":{
  1063. "op":"=",
  1064. "left":"coin3",
  1065. "right":1
  1066. }
  1067. },
  1068. "right":{
  1069. "op":"<",
  1070. "left":"counter",
  1071. "right":{
  1072. "op":"*",
  1073. "left":{
  1074. "op":"*",
  1075. "left":2,
  1076. "right":{
  1077. "op":"+",
  1078. "left":"K",
  1079. "right":1
  1080. }
  1081. },
  1082. "right":4
  1083. }
  1084. }
  1085. }
  1086. },
  1087. "destinations":[
  1088. {
  1089. "probability":{
  1090. "exp":1
  1091. },
  1092. "location":"location",
  1093. "assignments":[
  1094. {
  1095. "ref":"counter",
  1096. "value":{
  1097. "op":"+",
  1098. "left":"counter",
  1099. "right":1
  1100. }
  1101. },
  1102. {
  1103. "ref":"pc3",
  1104. "value":2
  1105. },
  1106. {
  1107. "ref":"coin3",
  1108. "value":0
  1109. }
  1110. ],
  1111. "observables":[
  1112. ]
  1113. }
  1114. ]
  1115. },
  1116. {
  1117. "location":"location",
  1118. "action":"tau__",
  1119. "guard":{
  1120. "exp":{
  1121. "op":"∧",
  1122. "left":{
  1123. "op":"=",
  1124. "left":"pc3",
  1125. "right":2
  1126. },
  1127. "right":{
  1128. "op":"≤",
  1129. "left":"counter",
  1130. "right":4
  1131. }
  1132. }
  1133. },
  1134. "destinations":[
  1135. {
  1136. "probability":{
  1137. "exp":1
  1138. },
  1139. "location":"location",
  1140. "assignments":[
  1141. {
  1142. "ref":"pc3",
  1143. "value":3
  1144. },
  1145. {
  1146. "ref":"coin3",
  1147. "value":0
  1148. }
  1149. ],
  1150. "observables":[
  1151. ]
  1152. }
  1153. ]
  1154. },
  1155. {
  1156. "location":"location",
  1157. "action":"tau__",
  1158. "guard":{
  1159. "exp":{
  1160. "op":"∧",
  1161. "left":{
  1162. "op":"=",
  1163. "left":"pc3",
  1164. "right":2
  1165. },
  1166. "right":{
  1167. "op":"≥",
  1168. "left":"counter",
  1169. "right":{
  1170. "op":"-",
  1171. "left":{
  1172. "op":"*",
  1173. "left":{
  1174. "op":"*",
  1175. "left":2,
  1176. "right":{
  1177. "op":"+",
  1178. "left":"K",
  1179. "right":1
  1180. }
  1181. },
  1182. "right":4
  1183. },
  1184. "right":4
  1185. }
  1186. }
  1187. }
  1188. },
  1189. "destinations":[
  1190. {
  1191. "probability":{
  1192. "exp":1
  1193. },
  1194. "location":"location",
  1195. "assignments":[
  1196. {
  1197. "ref":"pc3",
  1198. "value":3
  1199. },
  1200. {
  1201. "ref":"coin3",
  1202. "value":1
  1203. }
  1204. ],
  1205. "observables":[
  1206. ]
  1207. }
  1208. ]
  1209. },
  1210. {
  1211. "location":"location",
  1212. "action":"tau__",
  1213. "guard":{
  1214. "exp":{
  1215. "op":"∧",
  1216. "left":{
  1217. "op":"∧",
  1218. "left":{
  1219. "op":"=",
  1220. "left":"pc3",
  1221. "right":2
  1222. },
  1223. "right":{
  1224. "op":">",
  1225. "left":"counter",
  1226. "right":4
  1227. }
  1228. },
  1229. "right":{
  1230. "op":"<",
  1231. "left":"counter",
  1232. "right":{
  1233. "op":"-",
  1234. "left":{
  1235. "op":"*",
  1236. "left":{
  1237. "op":"*",
  1238. "left":2,
  1239. "right":{
  1240. "op":"+",
  1241. "left":"K",
  1242. "right":1
  1243. }
  1244. },
  1245. "right":4
  1246. },
  1247. "right":4
  1248. }
  1249. }
  1250. }
  1251. },
  1252. "destinations":[
  1253. {
  1254. "probability":{
  1255. "exp":1
  1256. },
  1257. "location":"location",
  1258. "assignments":[
  1259. {
  1260. "ref":"pc3",
  1261. "value":0
  1262. }
  1263. ],
  1264. "observables":[
  1265. ]
  1266. }
  1267. ]
  1268. },
  1269. {
  1270. "location":"location",
  1271. "action":"done",
  1272. "guard":{
  1273. "exp":{
  1274. "op":"=",
  1275. "left":"pc3",
  1276. "right":3
  1277. }
  1278. },
  1279. "destinations":[
  1280. {
  1281. "probability":{
  1282. "exp":1
  1283. },
  1284. "location":"location",
  1285. "assignments":[
  1286. {
  1287. "ref":"pc3",
  1288. "value":3
  1289. }
  1290. ]
  1291. }
  1292. ]
  1293. }
  1294. ]
  1295. },
  1296. {
  1297. "name":"process4",
  1298. "locations":[
  1299. {
  1300. "name":"location"
  1301. }
  1302. ],
  1303. "initial-locations":[
  1304. "location"
  1305. ],
  1306. "edges":[
  1307. {
  1308. "location":"location",
  1309. "action":"tau__",
  1310. "guard":{
  1311. "exp":{
  1312. "op":"=",
  1313. "left":"pc4",
  1314. "right":0
  1315. }
  1316. },
  1317. "destinations":[
  1318. {
  1319. "probability":{
  1320. "exp":0.5000000
  1321. },
  1322. "location":"location",
  1323. "assignments":[
  1324. {
  1325. "ref":"coin4",
  1326. "value":0
  1327. },
  1328. {
  1329. "ref":"pc4",
  1330. "value":1
  1331. }
  1332. ],
  1333. "observables":[
  1334. ]
  1335. },
  1336. {
  1337. "probability":{
  1338. "exp":0.5000000
  1339. },
  1340. "location":"location",
  1341. "assignments":[
  1342. {
  1343. "ref":"coin4",
  1344. "value":1
  1345. },
  1346. {
  1347. "ref":"pc4",
  1348. "value":1
  1349. }
  1350. ],
  1351. "observables":[
  1352. ]
  1353. }
  1354. ]
  1355. },
  1356. {
  1357. "location":"location",
  1358. "action":"tau__",
  1359. "guard":{
  1360. "exp":{
  1361. "op":"∧",
  1362. "left":{
  1363. "op":"∧",
  1364. "left":{
  1365. "op":"=",
  1366. "left":"pc4",
  1367. "right":1
  1368. },
  1369. "right":{
  1370. "op":"=",
  1371. "left":"coin4",
  1372. "right":0
  1373. }
  1374. },
  1375. "right":{
  1376. "op":">",
  1377. "left":"counter",
  1378. "right":0
  1379. }
  1380. }
  1381. },
  1382. "destinations":[
  1383. {
  1384. "probability":{
  1385. "exp":1
  1386. },
  1387. "location":"location",
  1388. "assignments":[
  1389. {
  1390. "ref":"counter",
  1391. "value":{
  1392. "op":"-",
  1393. "left":"counter",
  1394. "right":1
  1395. }
  1396. },
  1397. {
  1398. "ref":"pc4",
  1399. "value":2
  1400. },
  1401. {
  1402. "ref":"coin4",
  1403. "value":0
  1404. }
  1405. ],
  1406. "observables":[
  1407. ]
  1408. }
  1409. ]
  1410. },
  1411. {
  1412. "location":"location",
  1413. "action":"tau__",
  1414. "guard":{
  1415. "exp":{
  1416. "op":"∧",
  1417. "left":{
  1418. "op":"∧",
  1419. "left":{
  1420. "op":"=",
  1421. "left":"pc4",
  1422. "right":1
  1423. },
  1424. "right":{
  1425. "op":"=",
  1426. "left":"coin4",
  1427. "right":1
  1428. }
  1429. },
  1430. "right":{
  1431. "op":"<",
  1432. "left":"counter",
  1433. "right":{
  1434. "op":"*",
  1435. "left":{
  1436. "op":"*",
  1437. "left":2,
  1438. "right":{
  1439. "op":"+",
  1440. "left":"K",
  1441. "right":1
  1442. }
  1443. },
  1444. "right":4
  1445. }
  1446. }
  1447. }
  1448. },
  1449. "destinations":[
  1450. {
  1451. "probability":{
  1452. "exp":1
  1453. },
  1454. "location":"location",
  1455. "assignments":[
  1456. {
  1457. "ref":"counter",
  1458. "value":{
  1459. "op":"+",
  1460. "left":"counter",
  1461. "right":1
  1462. }
  1463. },
  1464. {
  1465. "ref":"pc4",
  1466. "value":2
  1467. },
  1468. {
  1469. "ref":"coin4",
  1470. "value":0
  1471. }
  1472. ],
  1473. "observables":[
  1474. ]
  1475. }
  1476. ]
  1477. },
  1478. {
  1479. "location":"location",
  1480. "action":"tau__",
  1481. "guard":{
  1482. "exp":{
  1483. "op":"∧",
  1484. "left":{
  1485. "op":"=",
  1486. "left":"pc4",
  1487. "right":2
  1488. },
  1489. "right":{
  1490. "op":"≤",
  1491. "left":"counter",
  1492. "right":4
  1493. }
  1494. }
  1495. },
  1496. "destinations":[
  1497. {
  1498. "probability":{
  1499. "exp":1
  1500. },
  1501. "location":"location",
  1502. "assignments":[
  1503. {
  1504. "ref":"pc4",
  1505. "value":3
  1506. },
  1507. {
  1508. "ref":"coin4",
  1509. "value":0
  1510. }
  1511. ],
  1512. "observables":[
  1513. ]
  1514. }
  1515. ]
  1516. },
  1517. {
  1518. "location":"location",
  1519. "action":"tau__",
  1520. "guard":{
  1521. "exp":{
  1522. "op":"∧",
  1523. "left":{
  1524. "op":"=",
  1525. "left":"pc4",
  1526. "right":2
  1527. },
  1528. "right":{
  1529. "op":"≥",
  1530. "left":"counter",
  1531. "right":{
  1532. "op":"-",
  1533. "left":{
  1534. "op":"*",
  1535. "left":{
  1536. "op":"*",
  1537. "left":2,
  1538. "right":{
  1539. "op":"+",
  1540. "left":"K",
  1541. "right":1
  1542. }
  1543. },
  1544. "right":4
  1545. },
  1546. "right":4
  1547. }
  1548. }
  1549. }
  1550. },
  1551. "destinations":[
  1552. {
  1553. "probability":{
  1554. "exp":1
  1555. },
  1556. "location":"location",
  1557. "assignments":[
  1558. {
  1559. "ref":"pc4",
  1560. "value":3
  1561. },
  1562. {
  1563. "ref":"coin4",
  1564. "value":1
  1565. }
  1566. ],
  1567. "observables":[
  1568. ]
  1569. }
  1570. ]
  1571. },
  1572. {
  1573. "location":"location",
  1574. "action":"tau__",
  1575. "guard":{
  1576. "exp":{
  1577. "op":"∧",
  1578. "left":{
  1579. "op":"∧",
  1580. "left":{
  1581. "op":"=",
  1582. "left":"pc4",
  1583. "right":2
  1584. },
  1585. "right":{
  1586. "op":">",
  1587. "left":"counter",
  1588. "right":4
  1589. }
  1590. },
  1591. "right":{
  1592. "op":"<",
  1593. "left":"counter",
  1594. "right":{
  1595. "op":"-",
  1596. "left":{
  1597. "op":"*",
  1598. "left":{
  1599. "op":"*",
  1600. "left":2,
  1601. "right":{
  1602. "op":"+",
  1603. "left":"K",
  1604. "right":1
  1605. }
  1606. },
  1607. "right":4
  1608. },
  1609. "right":4
  1610. }
  1611. }
  1612. }
  1613. },
  1614. "destinations":[
  1615. {
  1616. "probability":{
  1617. "exp":1
  1618. },
  1619. "location":"location",
  1620. "assignments":[
  1621. {
  1622. "ref":"pc4",
  1623. "value":0
  1624. }
  1625. ],
  1626. "observables":[
  1627. ]
  1628. }
  1629. ]
  1630. },
  1631. {
  1632. "location":"location",
  1633. "action":"done",
  1634. "guard":{
  1635. "exp":{
  1636. "op":"=",
  1637. "left":"pc4",
  1638. "right":3
  1639. }
  1640. },
  1641. "destinations":[
  1642. {
  1643. "probability":{
  1644. "exp":1
  1645. },
  1646. "location":"location",
  1647. "assignments":[
  1648. {
  1649. "ref":"pc4",
  1650. "value":3
  1651. }
  1652. ]
  1653. }
  1654. ]
  1655. }
  1656. ]
  1657. }
  1658. ],
  1659. "system":{
  1660. "elements":[
  1661. {
  1662. "automaton":"process1"
  1663. },
  1664. {
  1665. "automaton":"process2"
  1666. },
  1667. {
  1668. "automaton":"process3"
  1669. },
  1670. {
  1671. "automaton":"process4"
  1672. }
  1673. ],
  1674. "syncs":[
  1675. {
  1676. "synchronise":[
  1677. "done",
  1678. "done",
  1679. "done",
  1680. "done"
  1681. ],
  1682. "result":"done"
  1683. },
  1684. {
  1685. "synchronise":[
  1686. "tau__",
  1687. null,
  1688. null,
  1689. null
  1690. ],
  1691. "result":"tau__"
  1692. },
  1693. {
  1694. "synchronise":[
  1695. null,
  1696. "tau__",
  1697. null,
  1698. null
  1699. ],
  1700. "result":"tau__"
  1701. },
  1702. {
  1703. "synchronise":[
  1704. null,
  1705. null,
  1706. "tau__",
  1707. null
  1708. ],
  1709. "result":"tau__"
  1710. },
  1711. {
  1712. "synchronise":[
  1713. null,
  1714. null,
  1715. null,
  1716. "tau__"
  1717. ],
  1718. "result":"tau__"
  1719. }
  1720. ]
  1721. }
  1722. }