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.

2033 lines
69 KiB

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