1.23
2.0
acw/focus-triggers
main
test-branch
| Rev | Line | |
|---|
| [1b7d18d] | 1 | /* An example to show that an abstract function can be simplified to a
|
|---|
| 2 | concrete number. */
|
|---|
| 3 | $abstract int foo(int x);
|
|---|
| 4 |
|
|---|
| 5 | int main() {
|
|---|
| 6 | int x = foo(1);
|
|---|
| 7 | int a[3] = {1, 2, 3};
|
|---|
| 8 |
|
|---|
| 9 | $assume(foo(1) >= 0 && foo(1) <= 2);
|
|---|
| 10 |
|
|---|
| 11 | int y = a[x];
|
|---|
| 12 |
|
|---|
| 13 | $assume(foo(1) == 2);
|
|---|
| 14 | $when( x == 2 ) { // force canonicalization
|
|---|
| 15 | $assert(a[x] == 3); // true iff x is concrete
|
|---|
| 16 | $assert(y == 3);
|
|---|
| 17 | }
|
|---|
| 18 | }
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.