source: CIVL/examples/backend/showTrans.cvl

main
Last change on this file was 4e16aed, checked in by Stephen Siegel <siegel@…>, 5 weeks ago

Created new generic SMT translator. Added support for CVC5.

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

  • Property mode set to 100644
File size: 1.1 KB
RevLine 
[2e13620]1$abstract int random(int x, int y);
2
[d66b03b]3$scope root = $here;
4
[7329898]5typedef struct point{
6 int x;
7 int y;
8} point_t;
9
10int times2(int k, int t){
11 return 2*k*t;
12}
13
14void f(){
[7759ec0]15 $atomic{
[4e16aed]16 int x=0;
17 x++;
[7759ec0]18 }
[7329898]19}
20
[2e13620]21point_t reverse(point_t old){
22 point_t new;
23 new.x=old.y;
24 new.y=old.x;
25 return new;
26}
27
[7329898]28void main(){
29 int a=2;
30 int *b=&a;
31 void (*g)(void)=&f;
[e6fd645]32 $proc p=$spawn g();
[7329898]33 int c[2][2];
34 $domain(2) dom=($domain(2)){1 .. 4#2, 1 .. 4#2};
[2e13620]35 point_t pt;
36 double db;
[7329898]37
[4e16aed]38 a = a>0 ? times2(3, a*5) : times2(a, a+6);
[2e13620]39 db=(double)a;
[7329898]40 pt.x=1;
41 pt.y=pt.x+5;
[2e13620]42 pt.x=reverse(pt).x;
[7329898]43 $wait(p);
44 p=$spawn g();
45 $wait(p);
[2e13620]46 a=random(a, a+2);
[7329898]47 a=times2(a*a, a);
48 a=$next_time_count();
49 *b=$next_time_count();
[2e13620]50 a=-(a+*b*6);
[7329898]51 $for(int i, j: dom)
52 c[(i-1)/2][(j-1)/2] = i*10 + j;
[827239f]53 $assert($forall (int i | i >= 0 && i < 2) c[i][i] >= 0);
54 $assert($exists (int i | i >= 0 && i < 2) c[i][i] >= 0);
[7329898]55 dom=($domain(2)){0 .. 1, 0 .. 1};
56 $parfor(int i, j: dom)
57 times2(i, j);
[2e13620]58 *b=*(&c[0][0]+1);
[d66b03b]59 b=(int*)$malloc(root, sizeof(int)*2);
[7329898]60 b[0]=c[0][0];
61 b[1]=c[1][1];
62 $free(b);
63}
Note: See TracBrowser for help on using the repository browser.