Commit 7c38a6f
[move prover] ghost carrier and iterator validity for intrinsic maps
Intrinsic map types may declare ghost fields; such maps are represented
by a per-instance carrier datatype wrapping the raw table, giving the
ghosts constructor arguments to live in. Structural mutations havoc the
ghosts; value writes through borrows preserve them. Ghost-less maps keep
their raw table representation byte-identically.
This enables per-object iterator validity as plain Move-level specs: a
ghost brand on the map plus a ghost stamp on the iterator, with validity
a spec fun over the two — no pragmas, AST ops, or loop instrumentation.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 4fe6e03 commit 7c38a6f
17 files changed
Lines changed: 1500 additions & 193 deletions
File tree
- third_party/move
- move-model/src/builder
- move-prover
- boogie-backend/src
- prelude
- bytecode-pipeline/src
- tests/sources/functional
Lines changed: 37 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| |||
4310 | 4310 | | |
4311 | 4311 | | |
4312 | 4312 | | |
| 4313 | + | |
| 4314 | + | |
| 4315 | + | |
| 4316 | + | |
| 4317 | + | |
4313 | 4318 | | |
4314 | 4319 | | |
4315 | 4320 | | |
| |||
5324 | 5329 | | |
5325 | 5330 | | |
5326 | 5331 | | |
5327 | | - | |
5328 | | - | |
5329 | | - | |
5330 | | - | |
5331 | | - | |
5332 | | - | |
5333 | | - | |
5334 | | - | |
5335 | | - | |
5336 | | - | |
5337 | | - | |
5338 | | - | |
| 5332 | + | |
| 5333 | + | |
| 5334 | + | |
| 5335 | + | |
| 5336 | + | |
| 5337 | + | |
| 5338 | + | |
| 5339 | + | |
| 5340 | + | |
| 5341 | + | |
| 5342 | + | |
| 5343 | + | |
| 5344 | + | |
| 5345 | + | |
| 5346 | + | |
| 5347 | + | |
| 5348 | + | |
| 5349 | + | |
| 5350 | + | |
| 5351 | + | |
| 5352 | + | |
| 5353 | + | |
| 5354 | + | |
| 5355 | + | |
| 5356 | + | |
| 5357 | + | |
| 5358 | + | |
| 5359 | + | |
| 5360 | + | |
| 5361 | + | |
| 5362 | + | |
5339 | 5363 | | |
5340 | 5364 | | |
5341 | 5365 | | |
| |||
Lines changed: 14 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
62 | 76 | | |
63 | 77 | | |
64 | 78 | | |
| |||
Lines changed: 83 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| |||
7306 | 7306 | | |
7307 | 7307 | | |
7308 | 7308 | | |
| 7309 | + | |
| 7310 | + | |
| 7311 | + | |
| 7312 | + | |
| 7313 | + | |
7309 | 7314 | | |
7310 | 7315 | | |
7311 | 7316 | | |
7312 | 7317 | | |
7313 | 7318 | | |
7314 | 7319 | | |
7315 | 7320 | | |
| 7321 | + | |
7316 | 7322 | | |
7317 | 7323 | | |
7318 | 7324 | | |
| |||
7321 | 7327 | | |
7322 | 7328 | | |
7323 | 7329 | | |
| 7330 | + | |
7324 | 7331 | | |
7325 | 7332 | | |
7326 | 7333 | | |
| |||
7358 | 7365 | | |
7359 | 7366 | | |
7360 | 7367 | | |
| 7368 | + | |
| 7369 | + | |
| 7370 | + | |
| 7371 | + | |
7361 | 7372 | | |
7362 | 7373 | | |
7363 | 7374 | | |
7364 | 7375 | | |
7365 | 7376 | | |
7366 | 7377 | | |
7367 | 7378 | | |
| 7379 | + | |
7368 | 7380 | | |
7369 | 7381 | | |
7370 | 7382 | | |
7371 | 7383 | | |
7372 | 7384 | | |
7373 | | - | |
7374 | | - | |
7375 | | - | |
| 7385 | + | |
| 7386 | + | |
| 7387 | + | |
| 7388 | + | |
| 7389 | + | |
| 7390 | + | |
| 7391 | + | |
| 7392 | + | |
7376 | 7393 | | |
7377 | 7394 | | |
7378 | 7395 | | |
| |||
7384 | 7401 | | |
7385 | 7402 | | |
7386 | 7403 | | |
| 7404 | + | |
7387 | 7405 | | |
7388 | 7406 | | |
7389 | 7407 | | |
| |||
7396 | 7414 | | |
7397 | 7415 | | |
7398 | 7416 | | |
| 7417 | + | |
7399 | 7418 | | |
7400 | 7419 | | |
7401 | 7420 | | |
| |||
7441 | 7460 | | |
7442 | 7461 | | |
7443 | 7462 | | |
| 7463 | + | |
| 7464 | + | |
| 7465 | + | |
| 7466 | + | |
| 7467 | + | |
| 7468 | + | |
| 7469 | + | |
| 7470 | + | |
| 7471 | + | |
| 7472 | + | |
| 7473 | + | |
| 7474 | + | |
| 7475 | + | |
| 7476 | + | |
| 7477 | + | |
| 7478 | + | |
| 7479 | + | |
| 7480 | + | |
| 7481 | + | |
| 7482 | + | |
| 7483 | + | |
| 7484 | + | |
| 7485 | + | |
| 7486 | + | |
| 7487 | + | |
| 7488 | + | |
| 7489 | + | |
| 7490 | + | |
| 7491 | + | |
| 7492 | + | |
| 7493 | + | |
| 7494 | + | |
| 7495 | + | |
| 7496 | + | |
| 7497 | + | |
7444 | 7498 | | |
7445 | 7499 | | |
7446 | 7500 | | |
7447 | 7501 | | |
7448 | 7502 | | |
7449 | 7503 | | |
7450 | 7504 | | |
7451 | | - | |
| 7505 | + | |
| 7506 | + | |
| 7507 | + | |
| 7508 | + | |
| 7509 | + | |
| 7510 | + | |
7452 | 7511 | | |
7453 | 7512 | | |
7454 | 7513 | | |
| |||
7460 | 7519 | | |
7461 | 7520 | | |
7462 | 7521 | | |
| 7522 | + | |
7463 | 7523 | | |
| 7524 | + | |
| 7525 | + | |
| 7526 | + | |
| 7527 | + | |
| 7528 | + | |
| 7529 | + | |
| 7530 | + | |
| 7531 | + | |
| 7532 | + | |
| 7533 | + | |
| 7534 | + | |
| 7535 | + | |
| 7536 | + | |
| 7537 | + | |
| 7538 | + | |
7464 | 7539 | | |
7465 | 7540 | | |
7466 | | - | |
| 7541 | + | |
7467 | 7542 | | |
7468 | 7543 | | |
7469 | | - | |
7470 | | - | |
7471 | | - | |
7472 | | - | |
| 7544 | + | |
7473 | 7545 | | |
7474 | 7546 | | |
7475 | | - | |
7476 | | - | |
7477 | | - | |
7478 | | - | |
7479 | | - | |
7480 | | - | |
7481 | | - | |
| 7547 | + | |
7482 | 7548 | | |
7483 | 7549 | | |
7484 | 7550 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
10 | 12 | | |
11 | 13 | | |
12 | 14 | | |
| |||
105 | 107 | | |
106 | 108 | | |
107 | 109 | | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
108 | 116 | | |
109 | 117 | | |
110 | 118 | | |
| |||
132 | 140 | | |
133 | 141 | | |
134 | 142 | | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
135 | 157 | | |
136 | 158 | | |
137 | 159 | | |
| |||
555 | 577 | | |
556 | 578 | | |
557 | 579 | | |
558 | | - | |
| 580 | + | |
559 | 581 | | |
560 | 582 | | |
561 | 583 | | |
| |||
580 | 602 | | |
581 | 603 | | |
582 | 604 | | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
583 | 637 | | |
584 | 638 | | |
585 | 639 | | |
| |||
646 | 700 | | |
647 | 701 | | |
648 | 702 | | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
649 | 711 | | |
650 | 712 | | |
651 | 713 | | |
| |||
0 commit comments