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.

708 lines
23 KiB

  1. {
  2. "jani-version":1,
  3. "features":[
  4. "derived-operators"
  5. ],
  6. "name":"Converted from PRISM by IscasMC",
  7. "type":"pta",
  8. "actions":[
  9. {
  10. "name":"tau__"
  11. },
  12. {
  13. "name":"send_used"
  14. },
  15. {
  16. "name":"send_fresh"
  17. },
  18. {
  19. "name":"recv"
  20. }
  21. ],
  22. "variables":[
  23. {
  24. "name":"s",
  25. "type":{
  26. "kind":"bounded",
  27. "base":"int",
  28. "lower-bound":0,
  29. "upper-bound":2
  30. }
  31. },
  32. {
  33. "name":"probes",
  34. "type":{
  35. "kind":"bounded",
  36. "base":"int",
  37. "lower-bound":0,
  38. "upper-bound":4
  39. }
  40. },
  41. {
  42. "name":"ip",
  43. "type":{
  44. "kind":"bounded",
  45. "base":"int",
  46. "lower-bound":0,
  47. "upper-bound":2
  48. }
  49. },
  50. {
  51. "name":"x",
  52. "type":"clock"
  53. },
  54. {
  55. "name":"e",
  56. "type":{
  57. "kind":"bounded",
  58. "base":"int",
  59. "lower-bound":0,
  60. "upper-bound":2
  61. }
  62. },
  63. {
  64. "name":"y",
  65. "type":"clock"
  66. }
  67. ],
  68. "observables":[
  69. {
  70. "name":"\"time\""
  71. }
  72. ],
  73. "initial-states":{
  74. "exp":{
  75. "op":"∧",
  76. "left":{
  77. "op":"∧",
  78. "left":{
  79. "op":"∧",
  80. "left":{
  81. "op":"∧",
  82. "left":{
  83. "op":"∧",
  84. "left":{
  85. "op":"=",
  86. "left":"s",
  87. "right":0
  88. },
  89. "right":{
  90. "op":"=",
  91. "left":"probes",
  92. "right":0
  93. }
  94. },
  95. "right":{
  96. "op":"=",
  97. "left":"ip",
  98. "right":0
  99. }
  100. },
  101. "right":{
  102. "op":"=",
  103. "left":"x",
  104. "right":0
  105. }
  106. },
  107. "right":{
  108. "op":"=",
  109. "left":"e",
  110. "right":0
  111. }
  112. },
  113. "right":{
  114. "op":"=",
  115. "left":"y",
  116. "right":0
  117. }
  118. }
  119. },
  120. "automata":[
  121. {
  122. "name":"sender",
  123. "locations":[
  124. {
  125. "name":"location",
  126. "observables":[
  127. {
  128. "ref":"\"time\"",
  129. "value":1
  130. }
  131. ],
  132. "invariant":{
  133. "exp":{
  134. "op":"∧",
  135. "left":{
  136. "op":"∧",
  137. "left":{
  138. "op":"⇒",
  139. "left":{
  140. "op":"=",
  141. "left":"s",
  142. "right":0
  143. },
  144. "right":{
  145. "op":"≤",
  146. "left":"x",
  147. "right":0
  148. }
  149. },
  150. "right":{
  151. "op":"⇒",
  152. "left":{
  153. "op":"=",
  154. "left":"s",
  155. "right":1
  156. },
  157. "right":{
  158. "op":"≤",
  159. "left":"x",
  160. "right":20
  161. }
  162. }
  163. },
  164. "right":{
  165. "op":"⇒",
  166. "left":{
  167. "op":"=",
  168. "left":"s",
  169. "right":2
  170. },
  171. "right":true
  172. }
  173. }
  174. }
  175. }
  176. ],
  177. "initial-locations":[
  178. "location"
  179. ],
  180. "edges":[
  181. {
  182. "location":"location",
  183. "action":"tau__",
  184. "guard":{
  185. "exp":{
  186. "op":"=",
  187. "left":"s",
  188. "right":0
  189. }
  190. },
  191. "destinations":[
  192. {
  193. "probability":{
  194. "exp":0.5000000
  195. },
  196. "location":"location",
  197. "assignments":[
  198. {
  199. "ref":"s",
  200. "value":1
  201. },
  202. {
  203. "ref":"ip",
  204. "value":1
  205. }
  206. ],
  207. "observables":[
  208. ]
  209. },
  210. {
  211. "probability":{
  212. "exp":0.5000000
  213. },
  214. "location":"location",
  215. "assignments":[
  216. {
  217. "ref":"s",
  218. "value":1
  219. },
  220. {
  221. "ref":"ip",
  222. "value":2
  223. }
  224. ],
  225. "observables":[
  226. ]
  227. }
  228. ]
  229. },
  230. {
  231. "location":"location",
  232. "action":"send_used",
  233. "guard":{
  234. "exp":{
  235. "op":"∧",
  236. "left":{
  237. "op":"∧",
  238. "left":{
  239. "op":"∧",
  240. "left":{
  241. "op":"=",
  242. "left":"s",
  243. "right":1
  244. },
  245. "right":{
  246. "op":"=",
  247. "left":"x",
  248. "right":20
  249. }
  250. },
  251. "right":{
  252. "op":"=",
  253. "left":"ip",
  254. "right":2
  255. }
  256. },
  257. "right":{
  258. "op":"<",
  259. "left":"probes",
  260. "right":4
  261. }
  262. }
  263. },
  264. "destinations":[
  265. {
  266. "probability":{
  267. "exp":1
  268. },
  269. "location":"location",
  270. "assignments":[
  271. {
  272. "ref":"probes",
  273. "value":{
  274. "op":"+",
  275. "left":"probes",
  276. "right":1
  277. }
  278. },
  279. {
  280. "ref":"x",
  281. "value":0
  282. }
  283. ],
  284. "observables":[
  285. ]
  286. }
  287. ]
  288. },
  289. {
  290. "location":"location",
  291. "action":"send_fresh",
  292. "guard":{
  293. "exp":{
  294. "op":"∧",
  295. "left":{
  296. "op":"∧",
  297. "left":{
  298. "op":"∧",
  299. "left":{
  300. "op":"=",
  301. "left":"s",
  302. "right":1
  303. },
  304. "right":{
  305. "op":"=",
  306. "left":"x",
  307. "right":20
  308. }
  309. },
  310. "right":{
  311. "op":"=",
  312. "left":"ip",
  313. "right":1
  314. }
  315. },
  316. "right":{
  317. "op":"<",
  318. "left":"probes",
  319. "right":4
  320. }
  321. }
  322. },
  323. "destinations":[
  324. {
  325. "probability":{
  326. "exp":1
  327. },
  328. "location":"location",
  329. "assignments":[
  330. {
  331. "ref":"probes",
  332. "value":{
  333. "op":"+",
  334. "left":"probes",
  335. "right":1
  336. }
  337. },
  338. {
  339. "ref":"x",
  340. "value":0
  341. }
  342. ],
  343. "observables":[
  344. ]
  345. }
  346. ]
  347. },
  348. {
  349. "location":"location",
  350. "action":"tau__",
  351. "guard":{
  352. "exp":{
  353. "op":"∧",
  354. "left":{
  355. "op":"∧",
  356. "left":{
  357. "op":"=",
  358. "left":"s",
  359. "right":1
  360. },
  361. "right":{
  362. "op":"=",
  363. "left":"x",
  364. "right":20
  365. }
  366. },
  367. "right":{
  368. "op":"=",
  369. "left":"probes",
  370. "right":4
  371. }
  372. }
  373. },
  374. "destinations":[
  375. {
  376. "probability":{
  377. "exp":1
  378. },
  379. "location":"location",
  380. "assignments":[
  381. {
  382. "ref":"s",
  383. "value":2
  384. },
  385. {
  386. "ref":"x",
  387. "value":0
  388. }
  389. ],
  390. "observables":[
  391. ]
  392. }
  393. ]
  394. },
  395. {
  396. "location":"location",
  397. "action":"recv",
  398. "guard":{
  399. "exp":{
  400. "op":"=",
  401. "left":"s",
  402. "right":1
  403. }
  404. },
  405. "destinations":[
  406. {
  407. "probability":{
  408. "exp":1
  409. },
  410. "location":"location",
  411. "assignments":[
  412. {
  413. "ref":"s",
  414. "value":0
  415. },
  416. {
  417. "ref":"x",
  418. "value":0
  419. },
  420. {
  421. "ref":"ip",
  422. "value":0
  423. },
  424. {
  425. "ref":"probes",
  426. "value":0
  427. }
  428. ],
  429. "observables":[
  430. ]
  431. }
  432. ]
  433. },
  434. {
  435. "location":"location",
  436. "action":"tau__",
  437. "guard":{
  438. "exp":{
  439. "op":"=",
  440. "left":"s",
  441. "right":2
  442. }
  443. },
  444. "destinations":[
  445. {
  446. "probability":{
  447. "exp":1
  448. },
  449. "location":"location",
  450. "assignments":[
  451. ],
  452. "observables":[
  453. ]
  454. }
  455. ]
  456. }
  457. ]
  458. },
  459. {
  460. "name":"environment",
  461. "locations":[
  462. {
  463. "name":"location",
  464. "invariant":{
  465. "exp":{
  466. "op":"∧",
  467. "left":{
  468. "op":"⇒",
  469. "left":{
  470. "op":"=",
  471. "left":"e",
  472. "right":0
  473. },
  474. "right":true
  475. },
  476. "right":{
  477. "op":"⇒",
  478. "left":{
  479. "op":"≥",
  480. "left":"e",
  481. "right":1
  482. },
  483. "right":{
  484. "op":"≤",
  485. "left":"y",
  486. "right":5
  487. }
  488. }
  489. }
  490. }
  491. }
  492. ],
  493. "initial-locations":[
  494. "location"
  495. ],
  496. "edges":[
  497. {
  498. "location":"location",
  499. "action":"send_fresh",
  500. "guard":{
  501. "exp":{
  502. "op":"=",
  503. "left":"e",
  504. "right":0
  505. }
  506. },
  507. "destinations":[
  508. {
  509. "probability":{
  510. "exp":1
  511. },
  512. "location":"location",
  513. "assignments":[
  514. ]
  515. }
  516. ]
  517. },
  518. {
  519. "location":"location",
  520. "action":"send_used",
  521. "guard":{
  522. "exp":{
  523. "op":"=",
  524. "left":"e",
  525. "right":0
  526. }
  527. },
  528. "destinations":[
  529. {
  530. "probability":{
  531. "exp":0.1000000
  532. },
  533. "location":"location",
  534. "assignments":[
  535. {
  536. "ref":"e",
  537. "value":0
  538. },
  539. {
  540. "ref":"y",
  541. "value":0
  542. }
  543. ]
  544. },
  545. {
  546. "probability":{
  547. "exp":0.9000000
  548. },
  549. "location":"location",
  550. "assignments":[
  551. {
  552. "ref":"e",
  553. "value":1
  554. },
  555. {
  556. "ref":"y",
  557. "value":0
  558. }
  559. ]
  560. }
  561. ]
  562. },
  563. {
  564. "location":"location",
  565. "action":"tau__",
  566. "guard":{
  567. "exp":{
  568. "op":"∧",
  569. "left":{
  570. "op":"=",
  571. "left":"e",
  572. "right":1
  573. },
  574. "right":{
  575. "op":"≥",
  576. "left":"y",
  577. "right":1
  578. }
  579. }
  580. },
  581. "destinations":[
  582. {
  583. "probability":{
  584. "exp":0.1000000
  585. },
  586. "location":"location",
  587. "assignments":[
  588. {
  589. "ref":"e",
  590. "value":0
  591. },
  592. {
  593. "ref":"y",
  594. "value":0
  595. }
  596. ],
  597. "observables":[
  598. ]
  599. },
  600. {
  601. "probability":{
  602. "exp":0.9000000
  603. },
  604. "location":"location",
  605. "assignments":[
  606. {
  607. "ref":"e",
  608. "value":2
  609. },
  610. {
  611. "ref":"y",
  612. "value":0
  613. }
  614. ],
  615. "observables":[
  616. ]
  617. }
  618. ]
  619. },
  620. {
  621. "location":"location",
  622. "action":"recv",
  623. "guard":{
  624. "exp":{
  625. "op":"∧",
  626. "left":{
  627. "op":"=",
  628. "left":"e",
  629. "right":2
  630. },
  631. "right":{
  632. "op":"≥",
  633. "left":"y",
  634. "right":1
  635. }
  636. }
  637. },
  638. "destinations":[
  639. {
  640. "probability":{
  641. "exp":1
  642. },
  643. "location":"location",
  644. "assignments":[
  645. {
  646. "ref":"e",
  647. "value":0
  648. },
  649. {
  650. "ref":"y",
  651. "value":0
  652. }
  653. ]
  654. }
  655. ]
  656. }
  657. ]
  658. }
  659. ],
  660. "system":{
  661. "elements":[
  662. {
  663. "automaton":"sender"
  664. },
  665. {
  666. "automaton":"environment"
  667. }
  668. ],
  669. "syncs":[
  670. {
  671. "synchronise":[
  672. "send_used",
  673. "send_used"
  674. ],
  675. "result":"send_used"
  676. },
  677. {
  678. "synchronise":[
  679. "send_fresh",
  680. "send_fresh"
  681. ],
  682. "result":"send_fresh"
  683. },
  684. {
  685. "synchronise":[
  686. "recv",
  687. "recv"
  688. ],
  689. "result":"recv"
  690. },
  691. {
  692. "synchronise":[
  693. "tau__",
  694. null
  695. ],
  696. "result":"tau__"
  697. },
  698. {
  699. "synchronise":[
  700. null,
  701. "tau__"
  702. ],
  703. "result":"tau__"
  704. }
  705. ]
  706. }
  707. }