source: CIVL/mods/dev.civl.abc/examples/svcomp/Parts_true-termination.c

main
Last change on this file was aad342c, checked in by Stephen Siegel <siegel@…>, 3 years ago

Performing huge refactor to incorporate ABC, GMC, and SARL into CIVL repo and use Java modules.

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

  • Property mode set to 100644
File size: 846 bytes
Line 
1// public class Parts {
2
3 // public static int parts(int p, int q) {
4 // if (p <= 0) return 1;
5 // else if (q <= 0) return 0;
6 // else if (q > p) return parts(p, p);
7 // else return parts(p-q, q) + parts(p, q-1);
8 // }
9
10 // public static void main(String args[]) {
11 // for (int p = 0; p <= args.length; p++)
12 // for (int q = 0; q <= args.length; q++)
13 // parts(p, q);
14 // }
15// }
16
17extern int __VERIFIER_nondet_int(void);
18
19int parts(int p, int q) {
20 if (p <= 0) return 1;
21 else if (q <= 0) return 0;
22 else if (q > p) return parts(p, p);
23 else return parts(p-q, q) + parts(p, q-1);
24 }
25
26int main() {
27 int x = __VERIFIER_nondet_int();
28 if(x < 0)
29 return 0;
30 int y = __VERIFIER_nondet_int();
31 if(y < 0)
32 return 0;
33 int z = __VERIFIER_nondet_int();
34 for (int p = 0; p <= x; p++)
35 for (int q = 0; q <= x; q++)
36 parts(p, q);
37
38}
Note: See TracBrowser for help on using the repository browser.