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.

901 lines
31 KiB

  1. {
  2. "jani-version":1,
  3. "features":[
  4. "derived-operators"
  5. ],
  6. "name":"Converted from PRISM by IscasMC",
  7. "type":"mdp",
  8. "actions":[
  9. {
  10. "name":"tau__"
  11. },
  12. {
  13. "name":"done"
  14. }
  15. ],
  16. "constants":[
  17. {
  18. "name":"K",
  19. "type":"int"
  20. }
  21. ],
  22. "variables":[
  23. {
  24. "name":"counter",
  25. "type":{
  26. "kind":"bounded",
  27. "base":"int",
  28. "lower-bound":0,
  29. "upper-bound":{
  30. "op":"*",
  31. "left":{
  32. "op":"*",
  33. "left":2,
  34. "right":{
  35. "op":"+",
  36. "left":"K",
  37. "right":1
  38. }
  39. },
  40. "right":2
  41. }
  42. }
  43. },
  44. {
  45. "name":"pc1",
  46. "type":{
  47. "kind":"bounded",
  48. "base":"int",
  49. "lower-bound":0,
  50. "upper-bound":3
  51. }
  52. },
  53. {
  54. "name":"coin1",
  55. "type":{
  56. "kind":"bounded",
  57. "base":"int",
  58. "lower-bound":0,
  59. "upper-bound":1
  60. }
  61. },
  62. {
  63. "name":"pc2",
  64. "type":{
  65. "kind":"bounded",
  66. "base":"int",
  67. "lower-bound":0,
  68. "upper-bound":3
  69. }
  70. },
  71. {
  72. "name":"coin2",
  73. "type":{
  74. "kind":"bounded",
  75. "base":"int",
  76. "lower-bound":0,
  77. "upper-bound":1
  78. }
  79. }
  80. ],
  81. "observables":[
  82. {
  83. "name":"\"steps\""
  84. }
  85. ],
  86. "initial-states":{
  87. "exp":{
  88. "op":"∧",
  89. "left":{
  90. "op":"∧",
  91. "left":{
  92. "op":"∧",
  93. "left":{
  94. "op":"∧",
  95. "left":{
  96. "op":"=",
  97. "left":"counter",
  98. "right":{
  99. "op":"*",
  100. "left":{
  101. "op":"+",
  102. "left":"K",
  103. "right":1
  104. },
  105. "right":2
  106. }
  107. },
  108. "right":{
  109. "op":"=",
  110. "left":"pc1",
  111. "right":0
  112. }
  113. },
  114. "right":{
  115. "op":"=",
  116. "left":"coin1",
  117. "right":0
  118. }
  119. },
  120. "right":{
  121. "op":"=",
  122. "left":"pc2",
  123. "right":0
  124. }
  125. },
  126. "right":{
  127. "op":"=",
  128. "left":"coin2",
  129. "right":0
  130. }
  131. }
  132. },
  133. "automata":[
  134. {
  135. "name":"process1",
  136. "locations":[
  137. {
  138. "name":"location",
  139. "observables":[
  140. {
  141. "ref":"\"steps\"",
  142. "value":1
  143. }
  144. ]
  145. }
  146. ],
  147. "initial-locations":[
  148. "location"
  149. ],
  150. "edges":[
  151. {
  152. "location":"location",
  153. "action":"tau__",
  154. "guard":{
  155. "exp":{
  156. "op":"=",
  157. "left":"pc1",
  158. "right":0
  159. }
  160. },
  161. "destinations":[
  162. {
  163. "probability":{
  164. "exp":0.5000000
  165. },
  166. "location":"location",
  167. "assignments":[
  168. {
  169. "ref":"coin1",
  170. "value":0
  171. },
  172. {
  173. "ref":"pc1",
  174. "value":1
  175. }
  176. ],
  177. "observables":[
  178. ]
  179. },
  180. {
  181. "probability":{
  182. "exp":0.5000000
  183. },
  184. "location":"location",
  185. "assignments":[
  186. {
  187. "ref":"coin1",
  188. "value":1
  189. },
  190. {
  191. "ref":"pc1",
  192. "value":1
  193. }
  194. ],
  195. "observables":[
  196. ]
  197. }
  198. ]
  199. },
  200. {
  201. "location":"location",
  202. "action":"tau__",
  203. "guard":{
  204. "exp":{
  205. "op":"∧",
  206. "left":{
  207. "op":"∧",
  208. "left":{
  209. "op":"=",
  210. "left":"pc1",
  211. "right":1
  212. },
  213. "right":{
  214. "op":"=",
  215. "left":"coin1",
  216. "right":0
  217. }
  218. },
  219. "right":{
  220. "op":">",
  221. "left":"counter",
  222. "right":0
  223. }
  224. }
  225. },
  226. "destinations":[
  227. {
  228. "probability":{
  229. "exp":1
  230. },
  231. "location":"location",
  232. "assignments":[
  233. {
  234. "ref":"counter",
  235. "value":{
  236. "op":"-",
  237. "left":"counter",
  238. "right":1
  239. }
  240. },
  241. {
  242. "ref":"pc1",
  243. "value":2
  244. },
  245. {
  246. "ref":"coin1",
  247. "value":0
  248. }
  249. ],
  250. "observables":[
  251. ]
  252. }
  253. ]
  254. },
  255. {
  256. "location":"location",
  257. "action":"tau__",
  258. "guard":{
  259. "exp":{
  260. "op":"∧",
  261. "left":{
  262. "op":"∧",
  263. "left":{
  264. "op":"=",
  265. "left":"pc1",
  266. "right":1
  267. },
  268. "right":{
  269. "op":"=",
  270. "left":"coin1",
  271. "right":1
  272. }
  273. },
  274. "right":{
  275. "op":"<",
  276. "left":"counter",
  277. "right":{
  278. "op":"*",
  279. "left":{
  280. "op":"*",
  281. "left":2,
  282. "right":{
  283. "op":"+",
  284. "left":"K",
  285. "right":1
  286. }
  287. },
  288. "right":2
  289. }
  290. }
  291. }
  292. },
  293. "destinations":[
  294. {
  295. "probability":{
  296. "exp":1
  297. },
  298. "location":"location",
  299. "assignments":[
  300. {
  301. "ref":"counter",
  302. "value":{
  303. "op":"+",
  304. "left":"counter",
  305. "right":1
  306. }
  307. },
  308. {
  309. "ref":"pc1",
  310. "value":2
  311. },
  312. {
  313. "ref":"coin1",
  314. "value":0
  315. }
  316. ],
  317. "observables":[
  318. ]
  319. }
  320. ]
  321. },
  322. {
  323. "location":"location",
  324. "action":"tau__",
  325. "guard":{
  326. "exp":{
  327. "op":"∧",
  328. "left":{
  329. "op":"=",
  330. "left":"pc1",
  331. "right":2
  332. },
  333. "right":{
  334. "op":"≤",
  335. "left":"counter",
  336. "right":2
  337. }
  338. }
  339. },
  340. "destinations":[
  341. {
  342. "probability":{
  343. "exp":1
  344. },
  345. "location":"location",
  346. "assignments":[
  347. {
  348. "ref":"pc1",
  349. "value":3
  350. },
  351. {
  352. "ref":"coin1",
  353. "value":0
  354. }
  355. ],
  356. "observables":[
  357. ]
  358. }
  359. ]
  360. },
  361. {
  362. "location":"location",
  363. "action":"tau__",
  364. "guard":{
  365. "exp":{
  366. "op":"∧",
  367. "left":{
  368. "op":"=",
  369. "left":"pc1",
  370. "right":2
  371. },
  372. "right":{
  373. "op":"≥",
  374. "left":"counter",
  375. "right":{
  376. "op":"-",
  377. "left":{
  378. "op":"*",
  379. "left":{
  380. "op":"*",
  381. "left":2,
  382. "right":{
  383. "op":"+",
  384. "left":"K",
  385. "right":1
  386. }
  387. },
  388. "right":2
  389. },
  390. "right":2
  391. }
  392. }
  393. }
  394. },
  395. "destinations":[
  396. {
  397. "probability":{
  398. "exp":1
  399. },
  400. "location":"location",
  401. "assignments":[
  402. {
  403. "ref":"pc1",
  404. "value":3
  405. },
  406. {
  407. "ref":"coin1",
  408. "value":1
  409. }
  410. ],
  411. "observables":[
  412. ]
  413. }
  414. ]
  415. },
  416. {
  417. "location":"location",
  418. "action":"tau__",
  419. "guard":{
  420. "exp":{
  421. "op":"∧",
  422. "left":{
  423. "op":"∧",
  424. "left":{
  425. "op":"=",
  426. "left":"pc1",
  427. "right":2
  428. },
  429. "right":{
  430. "op":">",
  431. "left":"counter",
  432. "right":2
  433. }
  434. },
  435. "right":{
  436. "op":"<",
  437. "left":"counter",
  438. "right":{
  439. "op":"-",
  440. "left":{
  441. "op":"*",
  442. "left":{
  443. "op":"*",
  444. "left":2,
  445. "right":{
  446. "op":"+",
  447. "left":"K",
  448. "right":1
  449. }
  450. },
  451. "right":2
  452. },
  453. "right":2
  454. }
  455. }
  456. }
  457. },
  458. "destinations":[
  459. {
  460. "probability":{
  461. "exp":1
  462. },
  463. "location":"location",
  464. "assignments":[
  465. {
  466. "ref":"pc1",
  467. "value":0
  468. }
  469. ],
  470. "observables":[
  471. ]
  472. }
  473. ]
  474. },
  475. {
  476. "location":"location",
  477. "action":"done",
  478. "guard":{
  479. "exp":{
  480. "op":"=",
  481. "left":"pc1",
  482. "right":3
  483. }
  484. },
  485. "destinations":[
  486. {
  487. "probability":{
  488. "exp":1
  489. },
  490. "location":"location",
  491. "assignments":[
  492. {
  493. "ref":"pc1",
  494. "value":3
  495. }
  496. ],
  497. "observables":[
  498. ]
  499. }
  500. ]
  501. }
  502. ]
  503. },
  504. {
  505. "name":"process2",
  506. "locations":[
  507. {
  508. "name":"location"
  509. }
  510. ],
  511. "initial-locations":[
  512. "location"
  513. ],
  514. "edges":[
  515. {
  516. "location":"location",
  517. "action":"tau__",
  518. "guard":{
  519. "exp":{
  520. "op":"=",
  521. "left":"pc2",
  522. "right":0
  523. }
  524. },
  525. "destinations":[
  526. {
  527. "probability":{
  528. "exp":0.5000000
  529. },
  530. "location":"location",
  531. "assignments":[
  532. {
  533. "ref":"coin2",
  534. "value":0
  535. },
  536. {
  537. "ref":"pc2",
  538. "value":1
  539. }
  540. ],
  541. "observables":[
  542. ]
  543. },
  544. {
  545. "probability":{
  546. "exp":0.5000000
  547. },
  548. "location":"location",
  549. "assignments":[
  550. {
  551. "ref":"coin2",
  552. "value":1
  553. },
  554. {
  555. "ref":"pc2",
  556. "value":1
  557. }
  558. ],
  559. "observables":[
  560. ]
  561. }
  562. ]
  563. },
  564. {
  565. "location":"location",
  566. "action":"tau__",
  567. "guard":{
  568. "exp":{
  569. "op":"∧",
  570. "left":{
  571. "op":"∧",
  572. "left":{
  573. "op":"=",
  574. "left":"pc2",
  575. "right":1
  576. },
  577. "right":{
  578. "op":"=",
  579. "left":"coin2",
  580. "right":0
  581. }
  582. },
  583. "right":{
  584. "op":">",
  585. "left":"counter",
  586. "right":0
  587. }
  588. }
  589. },
  590. "destinations":[
  591. {
  592. "probability":{
  593. "exp":1
  594. },
  595. "location":"location",
  596. "assignments":[
  597. {
  598. "ref":"counter",
  599. "value":{
  600. "op":"-",
  601. "left":"counter",
  602. "right":1
  603. }
  604. },
  605. {
  606. "ref":"pc2",
  607. "value":2
  608. },
  609. {
  610. "ref":"coin2",
  611. "value":0
  612. }
  613. ],
  614. "observables":[
  615. ]
  616. }
  617. ]
  618. },
  619. {
  620. "location":"location",
  621. "action":"tau__",
  622. "guard":{
  623. "exp":{
  624. "op":"∧",
  625. "left":{
  626. "op":"∧",
  627. "left":{
  628. "op":"=",
  629. "left":"pc2",
  630. "right":1
  631. },
  632. "right":{
  633. "op":"=",
  634. "left":"coin2",
  635. "right":1
  636. }
  637. },
  638. "right":{
  639. "op":"<",
  640. "left":"counter",
  641. "right":{
  642. "op":"*",
  643. "left":{
  644. "op":"*",
  645. "left":2,
  646. "right":{
  647. "op":"+",
  648. "left":"K",
  649. "right":1
  650. }
  651. },
  652. "right":2
  653. }
  654. }
  655. }
  656. },
  657. "destinations":[
  658. {
  659. "probability":{
  660. "exp":1
  661. },
  662. "location":"location",
  663. "assignments":[
  664. {
  665. "ref":"counter",
  666. "value":{
  667. "op":"+",
  668. "left":"counter",
  669. "right":1
  670. }
  671. },
  672. {
  673. "ref":"pc2",
  674. "value":2
  675. },
  676. {
  677. "ref":"coin2",
  678. "value":0
  679. }
  680. ],
  681. "observables":[
  682. ]
  683. }
  684. ]
  685. },
  686. {
  687. "location":"location",
  688. "action":"tau__",
  689. "guard":{
  690. "exp":{
  691. "op":"∧",
  692. "left":{
  693. "op":"=",
  694. "left":"pc2",
  695. "right":2
  696. },
  697. "right":{
  698. "op":"≤",
  699. "left":"counter",
  700. "right":2
  701. }
  702. }
  703. },
  704. "destinations":[
  705. {
  706. "probability":{
  707. "exp":1
  708. },
  709. "location":"location",
  710. "assignments":[
  711. {
  712. "ref":"pc2",
  713. "value":3
  714. },
  715. {
  716. "ref":"coin2",
  717. "value":0
  718. }
  719. ],
  720. "observables":[
  721. ]
  722. }
  723. ]
  724. },
  725. {
  726. "location":"location",
  727. "action":"tau__",
  728. "guard":{
  729. "exp":{
  730. "op":"∧",
  731. "left":{
  732. "op":"=",
  733. "left":"pc2",
  734. "right":2
  735. },
  736. "right":{
  737. "op":"≥",
  738. "left":"counter",
  739. "right":{
  740. "op":"-",
  741. "left":{
  742. "op":"*",
  743. "left":{
  744. "op":"*",
  745. "left":2,
  746. "right":{
  747. "op":"+",
  748. "left":"K",
  749. "right":1
  750. }
  751. },
  752. "right":2
  753. },
  754. "right":2
  755. }
  756. }
  757. }
  758. },
  759. "destinations":[
  760. {
  761. "probability":{
  762. "exp":1
  763. },
  764. "location":"location",
  765. "assignments":[
  766. {
  767. "ref":"pc2",
  768. "value":3
  769. },
  770. {
  771. "ref":"coin2",
  772. "value":1
  773. }
  774. ],
  775. "observables":[
  776. ]
  777. }
  778. ]
  779. },
  780. {
  781. "location":"location",
  782. "action":"tau__",
  783. "guard":{
  784. "exp":{
  785. "op":"∧",
  786. "left":{
  787. "op":"∧",
  788. "left":{
  789. "op":"=",
  790. "left":"pc2",
  791. "right":2
  792. },
  793. "right":{
  794. "op":">",
  795. "left":"counter",
  796. "right":2
  797. }
  798. },
  799. "right":{
  800. "op":"<",
  801. "left":"counter",
  802. "right":{
  803. "op":"-",
  804. "left":{
  805. "op":"*",
  806. "left":{
  807. "op":"*",
  808. "left":2,
  809. "right":{
  810. "op":"+",
  811. "left":"K",
  812. "right":1
  813. }
  814. },
  815. "right":2
  816. },
  817. "right":2
  818. }
  819. }
  820. }
  821. },
  822. "destinations":[
  823. {
  824. "probability":{
  825. "exp":1
  826. },
  827. "location":"location",
  828. "assignments":[
  829. {
  830. "ref":"pc2",
  831. "value":0
  832. }
  833. ],
  834. "observables":[
  835. ]
  836. }
  837. ]
  838. },
  839. {
  840. "location":"location",
  841. "action":"done",
  842. "guard":{
  843. "exp":{
  844. "op":"=",
  845. "left":"pc2",
  846. "right":3
  847. }
  848. },
  849. "destinations":[
  850. {
  851. "probability":{
  852. "exp":1
  853. },
  854. "location":"location",
  855. "assignments":[
  856. {
  857. "ref":"pc2",
  858. "value":3
  859. }
  860. ]
  861. }
  862. ]
  863. }
  864. ]
  865. }
  866. ],
  867. "system":{
  868. "elements":[
  869. {
  870. "automaton":"process1"
  871. },
  872. {
  873. "automaton":"process2"
  874. }
  875. ],
  876. "syncs":[
  877. {
  878. "synchronise":[
  879. "done",
  880. "done"
  881. ],
  882. "result":"done"
  883. },
  884. {
  885. "synchronise":[
  886. "tau__",
  887. null
  888. ],
  889. "result":"tau__"
  890. },
  891. {
  892. "synchronise":[
  893. null,
  894. "tau__"
  895. ],
  896. "result":"tau__"
  897. }
  898. ]
  899. }
  900. }