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.

1556 lines
53 KiB

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