#! /bin/sh # -*- coding: utf-8 -*- # Copyright (C) 2014, 2015 Laboratoire de Recherche et Développement # de l'Epita (LRDE). # # This file is part of Spot, a model checking library. # # Spot is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # Spot is distributed in the hope that it will be useful, but WITHOUT # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public # License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . . ./defs || exit 1 set -e F0='(G ((((req) -> (X ((grant) && (X ((grant) && (X (grant))))))) && ((grant) -> (X (! (grant))))) && ((cancel) -> (X ((! (grant)) U (go))))))' IN0='cancel, go, req' OUT0='grant' EXP0='UNREALIZABLE' F1='(G ((((req) -> (X ((grant) || (X ((grant) || (X (grant))))))) && ((grant) -> (X (! (grant))))) && ((cancel) -> (X ((! (grant)) U (go))))))' IN1='cancel, go, req' OUT1='grant' EXP1='UNREALIZABLE' F2='((G ((cancel) -> (X (go)))) -> (G ((((req) -> (X ((grant) || (X ((grant) || (X (grant))))))) && ((grant) -> (X (! (grant))))) && ((cancel) -> (X ((! (grant)) U (go)))))))' IN2='cancel, go, req' OUT2='grant' EXP2='REALIZABLE' F3='((G ((cancel) -> (X ((go) || (X (go)))))) -> (G ((((req) -> (X ((grant) || (X ((grant) || (X (grant))))))) && ((grant) -> (X (! (grant))))) && ((cancel) -> (X ((! (grant)) U (go)))))))' IN3='cancel, go, req' OUT3='grant' EXP3='REALIZABLE' F4='((G ((cancel) -> (X ((go) || (X (go)))))) -> (G ((((req) -> (X (((grant) || (cancel)) || (X (((grant) || (cancel)) || (X ((grant) || (cancel)))))))) && ((grant) -> (X (! (grant))))) && ((cancel) -> (X ((! (grant)) U (go)))))))' IN4='cancel, go, req' OUT4='grant' EXP4='REALIZABLE' F5='((G ((cancel) -> (X ((go) || (X ((go) || (X (go)))))))) -> (G ((((req) -> (X (((grant) || (cancel)) || (X (((grant) || (cancel)) || (X ((grant) || (cancel)))))))) && ((grant) -> (X (! (grant))))) && ((cancel) -> (X ((! (grant)) U (go)))))))' IN5='cancel, go, req' OUT5='grant' EXP5='REALIZABLE' F6='((G ((cancel) -> (X ((go) || (X (go)))))) -> (G ((((cancel) -> (X ((! (grant)) U (go)))) && ((grant) -> (X (! (grant))))) && ((req) -> (((grant) || (cancel)) || (X (((grant) || (cancel)) || (X (((grant) || (cancel)) || (X ((grant) || (cancel))))))))))))' IN6='cancel, go, req' OUT6='grant' EXP6='REALIZABLE' F7='(! ((G ((req) -> (F (ack)))) && (G ((go) -> (F (grant))))))' IN7='go, req' OUT7='ack, grant' EXP7='UNREALIZABLE' F8='(((G ((((r1) -> (F (a1))) && ((r2) -> (F (a2)))) && (! ((a1) && (a2))))) && (((a1) U (r1)) || (G (a1)))) && (((a2) U (r2)) || (G (a2))))' IN8='r1, r2' OUT8='a1, a2' EXP8='UNREALIZABLE' F9='((((G (((((((r0) -> (F (a0))) && ((r1) -> (F (a1)))) && ((r2) -> (F (a2)))) && (! ((a0) && (a1)))) && (! ((a0) && (a2)))) && (! ((a1) && (a2))))) && (((a0) U (r0)) || (G (a0)))) && (((a1) U (r1)) || (G (a1)))) && (((a2) U (r2)) || (G (a2))))' IN9='r0, r1, r2' OUT9='a0, a1, a2' EXP9='UNREALIZABLE' cat <exp2 REALIZABLE aag 144 3 4 1 132 2 4 6 8 211 10 245 12 271 14 289 271 16 13 15 18 11 16 20 3 9 26 6 20 28 26 18 30 2 9 32 7 30 34 32 18 36 6 30 38 36 18 40 3 8 42 7 40 44 42 18 46 6 40 48 46 18 50 2 8 52 7 50 54 52 18 56 6 50 58 56 18 60 9 10 62 60 16 64 3 4 66 7 64 70 6 64 72 70 62 74 2 4 76 7 74 78 76 62 80 6 74 82 80 62 84 10 16 86 5 9 88 86 84 90 8 10 92 90 16 94 66 92 96 70 92 98 76 92 100 80 92 102 5 8 104 102 84 106 12 15 108 11 106 112 26 108 114 32 108 116 36 108 118 40 108 120 50 108 122 60 106 126 70 122 128 76 122 130 80 122 132 10 106 134 86 132 136 4 8 138 3 136 140 138 132 142 2 136 144 142 132 146 102 132 148 13 14 150 9 11 152 150 148 154 11 148 156 42 154 158 46 154 160 52 154 162 56 154 164 10 148 166 86 164 168 60 148 170 66 168 172 70 168 174 76 168 176 80 168 178 173 177 180 163 178 182 141 159 184 182 180 186 127 131 188 117 119 190 188 186 192 190 184 194 101 113 196 97 194 198 73 83 200 198 196 202 49 59 204 29 39 206 204 202 208 206 200 210 208 192 212 175 177 214 163 212 216 145 161 218 216 214 220 129 131 222 117 121 224 222 220 226 224 218 228 101 115 230 99 228 232 79 83 234 232 230 236 55 59 238 35 39 240 238 236 242 240 234 244 242 226 246 171 173 248 246 212 250 161 163 252 157 159 254 252 250 256 254 248 258 99 101 260 95 97 262 260 258 264 45 49 266 264 236 268 266 262 270 268 256 272 153 167 274 147 272 276 141 145 278 276 274 280 121 135 282 119 280 284 89 105 286 284 282 288 286 278 i0 cancel i1 go i2 req o0 grant EOF cat <exp3 REALIZABLE aag 264 3 4 1 257 2 4 6 8 313 10 377 12 443 14 483 529 16 13 15 18 11 16 20 3 9 22 7 20 24 22 18 26 2 9 28 7 26 30 28 18 32 6 26 34 32 18 36 6 20 38 36 18 40 3 8 42 7 40 44 42 18 46 2 8 48 7 46 50 48 18 52 6 46 54 52 18 56 6 40 58 56 18 60 9 10 62 60 16 64 3 4 66 7 64 68 66 62 70 2 4 72 7 70 74 72 62 76 6 70 78 76 62 80 6 64 82 80 62 84 10 16 86 5 9 88 7 86 90 88 84 92 6 86 94 92 84 96 5 8 98 96 84 100 8 10 102 100 16 104 66 102 106 72 102 108 76 102 110 80 102 112 12 15 114 11 112 116 22 114 118 28 114 120 32 114 122 36 114 124 42 114 126 48 114 128 52 114 130 56 114 132 60 112 134 66 132 136 72 132 138 76 132 140 80 132 142 10 112 144 88 142 146 92 142 148 96 142 150 4 8 152 3 150 154 152 142 156 2 150 158 156 142 160 13 14 162 11 160 164 20 162 166 26 162 168 42 162 170 48 162 172 52 162 174 56 162 176 60 160 178 66 176 180 72 176 182 76 176 184 80 176 186 10 160 188 86 186 190 96 186 192 100 160 194 66 192 196 72 192 198 76 192 200 80 192 202 12 14 204 9 11 206 204 202 208 11 202 210 96 208 212 8 11 214 212 202 216 66 214 218 72 214 220 76 214 222 80 214 224 60 202 226 66 224 228 72 224 230 76 224 232 80 224 234 10 202 236 86 234 238 100 202 240 66 238 242 72 238 244 76 238 246 80 238 248 96 234 250 241 245 252 231 250 254 221 227 256 254 252 258 199 217 260 189 195 262 260 258 264 262 256 266 179 183 268 169 173 270 268 266 272 155 165 274 147 149 276 274 272 278 276 270 280 278 264 282 135 139 284 125 129 286 284 282 288 117 121 290 105 109 292 290 288 294 292 286 296 95 99 298 69 79 300 298 296 302 45 55 304 25 35 306 304 302 308 306 300 310 308 294 312 310 280 314 243 245 316 231 314 318 221 229 320 318 316 322 199 219 324 189 197 326 324 322 328 326 320 330 181 183 332 171 173 334 332 330 336 159 167 338 145 147 340 338 336 342 340 334 344 342 328 346 137 139 348 127 129 350 348 346 352 119 121 354 107 109 356 354 352 358 356 350 360 91 95 362 75 79 364 362 360 366 51 55 368 31 35 370 368 366 372 370 364 374 372 358 376 374 344 378 245 249 380 243 378 382 237 241 384 382 380 386 221 233 388 219 386 390 211 217 392 390 388 394 392 384 396 199 207 398 197 396 400 191 195 402 400 398 404 173 179 406 404 330 408 406 402 410 408 394 412 169 171 414 149 412 416 338 414 418 131 141 420 121 418 422 117 119 424 422 420 426 424 416 428 105 354 430 296 428 432 83 91 434 39 59 436 434 432 438 436 430 440 438 426 442 440 410 444 247 249 446 237 444 448 211 223 450 207 448 452 450 446 454 191 201 456 189 454 458 175 185 460 167 458 462 460 456 464 462 452 466 159 165 468 155 466 470 145 274 472 470 468 474 111 123 476 99 474 478 360 476 480 478 472 482 480 464 484 245 247 486 241 243 488 486 484 490 221 223 492 219 490 494 492 488 496 201 217 498 197 199 500 498 496 502 185 195 504 183 502 506 504 500 508 506 494 510 179 181 512 173 175 514 512 510 516 123 412 518 516 514 520 111 117 522 520 352 524 428 522 526 524 518 528 526 508 i0 cancel i1 go i2 req o0 grant EOF cat <exp4 REALIZABLE aag 174 3 4 1 163 2 4 6 8 251 10 299 12 325 14 333 349 16 13 15 18 11 16 20 7 9 22 3 20 26 6 9 28 3 26 30 28 18 32 2 20 34 32 18 36 2 26 38 36 18 40 7 8 42 2 40 44 42 18 46 6 8 48 2 46 50 48 18 52 3 40 54 52 18 56 3 46 58 56 18 60 9 10 62 60 16 64 7 4 66 3 64 70 6 4 72 3 70 74 72 62 76 2 64 78 76 62 80 2 70 82 80 62 84 10 16 86 5 9 88 7 86 90 88 84 92 6 86 94 92 84 96 8 10 98 96 16 100 76 98 102 80 98 104 66 98 106 72 98 108 7 5 110 2 108 112 110 98 114 6 5 116 2 114 118 116 98 120 5 8 122 3 120 124 122 84 126 12 15 128 11 126 132 28 128 134 32 128 136 36 128 138 42 128 140 48 128 142 3 8 144 142 128 146 60 126 150 72 146 152 76 146 154 80 146 156 10 126 158 86 156 160 96 126 162 76 160 164 80 160 166 66 160 168 72 160 170 120 156 172 13 14 174 9 11 176 174 172 178 76 176 180 80 176 182 66 176 184 72 176 186 11 172 188 86 186 190 8 11 192 190 172 194 10 172 196 32 194 198 36 194 200 22 194 202 28 194 204 199 203 206 189 193 208 206 204 210 181 185 212 171 210 214 212 208 216 165 169 218 159 216 220 151 155 222 141 220 224 222 218 226 224 214 228 133 137 230 119 228 232 103 107 234 95 232 236 234 230 238 75 83 240 59 238 242 39 51 244 31 242 246 244 240 248 246 236 250 248 226 252 197 199 254 179 181 256 254 252 258 163 165 260 155 258 262 260 256 264 145 153 266 141 264 268 137 139 270 135 268 272 270 266 274 272 262 276 113 119 278 103 276 280 95 101 282 91 280 284 282 278 286 79 83 288 51 286 290 39 45 292 35 290 294 292 288 296 294 284 298 296 274 300 201 203 302 183 185 304 302 300 306 167 169 308 119 306 310 308 304 312 107 113 314 95 105 316 314 312 318 59 91 320 55 318 322 320 316 324 322 310 326 171 206 328 145 159 330 125 328 332 330 326 334 185 300 336 169 183 338 336 334 340 107 167 342 105 340 344 55 59 346 344 342 348 346 338 i0 cancel i1 go i2 req o0 grant EOF cat <exp5 REALIZABLE aag 289 3 4 1 282 2 4 6 8 367 10 455 12 509 14 547 579 16 13 15 18 11 16 20 7 9 22 3 20 24 22 18 26 2 20 28 26 18 30 6 9 32 2 30 34 32 18 36 3 30 38 36 18 40 7 8 42 3 40 44 42 18 46 2 40 48 46 18 50 6 8 52 2 50 54 52 18 56 3 50 58 56 18 60 9 10 62 60 16 64 7 4 66 3 64 68 66 62 70 2 64 72 70 62 74 6 4 76 2 74 78 76 62 80 3 74 82 80 62 84 10 16 86 5 9 88 7 86 90 88 84 92 6 86 94 92 84 96 8 10 98 96 16 100 70 98 102 76 98 104 7 5 106 2 104 108 106 98 110 6 5 112 2 110 114 112 98 116 5 8 118 3 116 120 118 84 122 66 98 124 80 98 126 12 15 128 11 126 130 26 128 132 32 128 134 22 128 136 36 128 138 46 128 140 52 128 142 3 8 144 142 128 146 10 126 148 26 146 150 32 146 152 22 146 154 36 146 156 96 126 158 66 156 160 70 156 162 76 156 164 80 156 166 7 116 168 166 146 170 6 116 172 170 146 174 13 14 176 9 11 178 176 174 180 70 178 182 76 178 184 66 178 186 80 178 188 106 178 190 112 178 192 11 174 194 3 86 196 194 192 198 8 11 200 198 174 202 70 200 204 76 200 206 106 200 208 112 200 210 118 192 212 66 200 214 80 200 216 60 174 218 66 216 220 70 216 222 76 216 224 80 216 226 10 174 228 86 226 230 96 174 232 70 230 234 76 230 236 66 230 238 80 230 240 116 226 242 12 14 244 176 242 246 70 244 248 76 244 250 11 242 252 86 250 254 66 244 256 80 244 258 198 242 260 10 242 262 22 260 264 26 260 266 32 260 268 36 260 270 96 242 272 70 270 274 76 270 276 66 270 278 80 270 280 116 260 282 279 281 284 277 282 286 267 275 288 259 286 290 288 284 292 255 257 294 253 292 296 241 249 298 296 294 300 298 290 302 237 239 304 235 302 306 223 229 308 215 306 310 308 304 312 209 213 314 205 312 316 191 197 318 316 314 320 318 310 322 320 300 324 185 187 326 183 324 328 163 173 330 155 328 332 330 326 334 151 153 336 141 334 338 135 137 340 338 336 342 340 332 344 125 133 346 123 344 348 109 121 350 103 348 352 350 346 354 79 91 356 55 354 358 25 35 360 358 356 362 360 352 364 362 342 366 364 322 368 273 275 370 267 368 372 263 265 374 249 372 376 374 370 378 235 247 380 233 378 382 221 223 384 219 382 386 384 380 388 386 376 390 207 209 392 205 390 394 197 203 396 191 394 398 396 392 400 183 189 402 181 400 404 169 173 406 404 402 408 406 398 410 408 388 412 161 163 414 159 412 416 149 151 418 145 416 420 418 414 422 139 141 424 133 422 426 109 131 428 426 424 430 428 420 432 101 103 434 91 432 436 73 79 438 69 436 440 438 434 442 49 55 444 45 442 446 29 35 448 446 444 450 448 440 452 450 430 454 452 410 456 263 269 458 456 282 460 257 259 462 241 253 464 462 460 466 464 458 468 229 239 470 219 225 472 470 468 474 211 215 476 197 474 478 476 472 480 478 466 482 165 187 484 155 159 486 484 482 488 137 145 490 125 488 492 490 486 494 91 109 496 69 83 498 496 494 500 45 59 502 39 500 504 502 498 506 504 492 508 506 480 510 263 281 512 259 510 514 229 462 516 514 512 518 211 219 520 209 518 522 197 207 524 522 520 526 524 516 528 189 191 530 173 528 532 159 169 534 532 530 536 115 121 538 95 536 540 45 69 542 540 538 544 542 534 546 544 526 548 277 279 550 257 548 552 239 255 554 552 550 556 215 237 558 187 213 560 558 556 562 560 554 564 155 185 566 137 153 568 566 564 570 125 135 572 25 123 574 572 570 576 574 568 578 576 562 i0 cancel i1 go i2 req o0 grant EOF cat <exp6 REALIZABLE aag 76 3 3 1 63 2 4 6 8 125 10 141 12 147 153 14 11 13 16 2 9 18 16 14 20 9 14 26 3 6 28 26 20 30 8 14 32 2 4 34 32 30 42 6 4 44 3 42 46 44 30 48 6 5 50 3 48 52 50 30 54 2 5 56 54 30 58 7 5 60 58 30 62 10 13 64 16 62 66 9 62 70 26 66 72 2 8 74 72 62 76 3 8 78 76 62 80 11 12 82 9 80 84 32 82 86 3 4 88 86 82 90 5 9 92 90 80 94 8 80 96 32 94 100 44 94 102 5 8 104 102 80 106 10 12 108 9 106 110 85 97 112 75 110 114 65 71 116 114 112 118 57 61 120 19 35 122 120 118 124 122 116 126 105 109 128 101 126 130 89 93 132 130 128 134 71 79 136 29 47 138 136 134 140 138 132 142 93 126 144 53 118 146 144 142 148 89 101 150 79 148 152 136 150 i0 cancel i1 go i2 req o0 grant EOF for i in 0 1 7 8 9; do F=$(eval echo \$F$i) IN=$(eval echo \$IN$i) OUT=$(eval echo \$OUT$i) EXP=$(eval echo \$EXP$i) REAL_REC=$(ltlsynt -f "$F" --input="$IN" --output="$OUT" \ --realizability --algo=rec) test $REAL_REC = UNREALIZABLE REAL_QP=$(ltlsynt -f "$F" --input="$IN" --output="$OUT" \ --realizability --algo=qp) test $REAL_QP = UNREALIZABLE SYNT=$(ltlsynt -f "$F" --input="$IN" --output="$OUT") test $SYNT = UNREALIZABLE PG=$(mktemp) done for i in 2 3 4 5 6; do F=$(eval echo \$F$i) IN=$(eval echo \$IN$i) OUT=$(eval echo \$OUT$i) EXP=$(eval echo \$EXP$i) REAL=$(ltlsynt -f "$F" --input="$IN" --output="$OUT" --realizability) test $REAL = REALIZABLE ltlsynt -f "$F" --input="$IN" --output="$OUT" > out$i diff out$i exp$i done