summaryrefslogtreecommitdiff
path: root/omega/examples/old_test/tseng.oc-rt
blob: 53ff13984703a24aae9afd70550b380da756a905 (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
# Omega Calculator v1.2 (based on Omega Library 1.2, August, 2000):
# symbolic n;
# 
# symbolic LV,UV;
# 
# D := {[ i,i+1] -> [i+1,k] : 1 <= i && i+1 < k <= n};
# 
# local := {[i1,k1] -> [i2,k2] : LV <= k1,k2 <= UV };
# 
# sameP := {[i1,k1] -> [i2,k2] : k1=k2  ||  LV <= k1,k2 <= UV };
# 
# myIter := {[i,k]  : LV <= k <= UV};
# 
# lexPos := {[i1,k1] -> [i2,k2] : i1 = i2 && k1 < k2 || i1 < i2};
# 
# 
# post := D restrictDomain myIter;
# 
# wait := D restrictRange myIter;
# 
# enforcedTime := sameP intersection lexPos;
# 
# enforcedTime;

{[i1,k1] -> [i1,k2] : LV <= k1 < k2 <= UV} union
 {[i1,k1] -> [i2,k1] : i1 < i2} union
 {[i1,k1] -> [i2,k2] : LV <= k1,k2 <= UV && i1 < i2}

# 
# enforced := enforcedTime compose D union D compose enforcedTime union enforcedTime;
# 
# enforced;

{[i1,i1+1] -> [i2,k2] : 1 <= i1 <= n-2, UV-2, i2-2 && LV <= k2 <= UV && LV <= n} union
 {[i1,k1] -> [i2,k2] : k1 = 1+i1 && 1 <= i1 <= i2-2, k2-2 && k2 <= n} union
 {[i1,i1+1] -> [i1+1,k2] : 1 <= i1 <= n-2, k2-3 && LV < k2 <= UV && LV <= n} union
 {[i1,k1] -> [i2,k2] : 2, LV, i1+2 <= i2 < k2 <= n && LV <= k1 <= UV && i2 <= UV} union
 {[i1,k1] -> [k1,k2] : 2, i1+2 <= k1 < k2 <= n} union
 {[i1,k1] -> [i1+1,k2] : LV <= k1 <= i1 <= k2-2, UV-1 && k2 <= n && 1 <= i1} union
 {[i1,k1] -> [i2,k2] : LV <= k1,k2 <= UV && i1 < i2} union
 {[i1,k1] -> [i2,k1] : i1 < i2} union
 {[i1,k1] -> [i1,k2] : LV <= k1 < k2 <= UV}

# 
# post - enforced;

{[In_1,In_1+1] -> [In_1+1,Out_2] : 1, LV-1 <= In_1 < UV < Out_2 <= n}

# 
# wait - enforced;

{[In_1,In_1+1] -> [In_1+1,LV] : In_1+2 <= LV <= n, UV && 1 <= In_1}

#