source: CIVL/examples/backend/simplifyAbstractFunction2Concrete.cvl

main
Last change on this file was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 381 bytes
Line 
1/* An example to show that an abstract function can be simplified to a
2 concrete number. */
3$abstract int foo(int x);
4
5int 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.