source: CIVL/examples/languageFeatures/atomicStatement.cvl@ 50931db

1.23 2.0 main test-branch
Last change on this file since 50931db was 3ff27cf, checked in by Manchun Zheng <zmanchun@…>, 11 years ago

updated examples since $assert/$assume has been changed to functions; fixed the model builder for the new side-effect remover.

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

  • Property mode set to 100644
File size: 512 bytes
Line 
1/* Commandline execution:
2 * civl verify -inputB=3 atomicStatement.cvl
3 * */
4#include<civlc.cvh>
5$input int B = 3;
6$input int N;
7$assume(0<N && N<B);
8int n = 3;
9
10void main(){
11 int x;
12
13 $atomic{
14 $when(n > 1) n = 3;
15 $atomic{
16 x = N;
17 x = x * 2;
18 }
19 $assert((x == 2*N));
20 // non-determinism allowed in $atomic block
21 $atomic{
22 x = 3;
23 $choose {
24 $when (n>2) { x=2; }
25 $when (n>1) { x=1; }
26 default: {x=0; }
27 }
28 }
29 $assert((x == 2 || x == 1));
30 }
31}
Note: See TracBrowser for help on using the repository browser.