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.

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