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.

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