summaryrefslogtreecommitdiff
path: root/omegalib/examples/old_test/affineClosure2.oc-rt
blob: b4c1fd7298a57a790bdb2410b82d48e3fbc3c807 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Omega Calculator v1.2 (based on Omega Library 1.2, August, 2000):
# symbolic n;
# 
# symbolic c;
# 
# # # Omega Calculator [v1.00, Mar 96]:
# # # 
# # # 
# # # 
# # # R := {[i,j] : 1 <= i <= 10 && 1 <= j <= n};
# # # 
# # # R;
# # 
# # {[i,j]: 1 <= i <= 10 && 1 <= j <= n}
# # 
# # # 
# # # ac := approximate {[i,j] : exists (lambda0, lambda1,lambda2,lambda3,lambda4 :
# # # 	0 <= lambda0, lambda1,lambda2,lambda3,lambda4
# # # 	&& c = lambda0-lambda1+ 10 lambda2 - lambda3
# # # 	&& i = lambda1-lambda2
# # # 	&& j = lambda3-lambda4
# # # 	&& n = lambda4)};
# # # 
# # # ac;
# # 
# # {[i,j]: 0 <= n && 0 <= n+c+i+j && 0 <= n+c+10i+j && 0 <= n+j}
# # 
# # # 
# # # 
# # # #ac intersection {[i,j] : i = 1 && c = -1}		;
# # # #ac intersection {[i,j] : i = -1 && c = 10}		;
# # # #ac intersection {[i,j] :  j = 1 && c = -1 }		;
# # # #ac intersection {[i,j] : j = -1 && n = 1}		;
# # # 	
# 
# approximate {[i,j] : exists (lambda0, lambda1,lambda2,lambda3,lambda4 :
# 	0 <= lambda0,lambda1,lambda2,lambda3,lambda4
# 	&& n = lambda1+lambda2+lambda3+lambda4
# 	&& i = lambda2+10lambda3
# 	&& j = lambda2+lambda3+lambda4
# 	&& c = lambda0+lambda2+lambda3
# 	&& c = 1
# 	)};

{[i,j]: c = 1 && 0 <= i <= 10j, 10 && j <= n}

# 
# approximate {[i,j] : exists (lambda0, lambda1,lambda2,lambda3,lambda4 :
# 	0 <= lambda1,lambda2,lambda3,lambda4
# 	&& n = lambda1+lambda2+lambda3+lambda4
# 	&& i = lambda2+10lambda3
# 	&& j = lambda2+lambda3+lambda4
# 	&& c = lambda2+lambda3
# 	&& c = 1
# 	)};

{[i,j]: c = 1 && 1 <= i <= 10 && 1 <= j <= n}

# 
# approximate {[i,j] : exists (lambda0, lambda1,lambda2,lambda3,lambda4 :
# 	0 <= lambda1,lambda2,lambda3,lambda4
# 	&& n = lambda1+lambda2+lambda3+lambda4
# 	&& i = lambda2+10lambda3
# 	&& j = lambda2+lambda3+lambda4
# 	&& c = lambda2+lambda3
# 	)};

{[i,j]: c <= i <= 10c && c <= j <= n}

#