1.29/1.32 YES 1.29/1.32 1.29/1.32 DP problem for innermost termination. 1.29/1.32 P = 1.29/1.32 init#(x1, x2) -> f1#(rnd1, rnd2) 1.29/1.32 f3#(I0, I1) -> f3#(I0, I1 - 1) [0 <= I1 - 1] 1.29/1.32 f3#(I2, I3) -> f2#(0, I2 - 1) [0 = I3] 1.29/1.32 f2#(I4, I5) -> f3#(I5, I4) [0 <= I5 - 1] 1.29/1.32 f1#(I6, I7) -> f2#(I8, I9) [0 <= I6 - 1 /\ -1 <= I9 - 1 /\ -1 <= I7 - 1 /\ -1 <= I8 - 1] 1.29/1.32 R = 1.29/1.32 init(x1, x2) -> f1(rnd1, rnd2) 1.29/1.32 f3(I0, I1) -> f3(I0, I1 - 1) [0 <= I1 - 1] 1.29/1.32 f3(I2, I3) -> f2(0, I2 - 1) [0 = I3] 1.29/1.32 f2(I4, I5) -> f3(I5, I4) [0 <= I5 - 1] 1.29/1.32 f1(I6, I7) -> f2(I8, I9) [0 <= I6 - 1 /\ -1 <= I9 - 1 /\ -1 <= I7 - 1 /\ -1 <= I8 - 1] 1.29/1.32 1.29/1.32 The dependency graph for this problem is: 1.29/1.32 0 -> 4 1.29/1.32 1 -> 1, 2 1.29/1.32 2 -> 3 1.29/1.32 3 -> 1, 2 1.29/1.32 4 -> 3 1.29/1.32 Where: 1.29/1.32 0) init#(x1, x2) -> f1#(rnd1, rnd2) 1.29/1.32 1) f3#(I0, I1) -> f3#(I0, I1 - 1) [0 <= I1 - 1] 1.29/1.32 2) f3#(I2, I3) -> f2#(0, I2 - 1) [0 = I3] 1.29/1.32 3) f2#(I4, I5) -> f3#(I5, I4) [0 <= I5 - 1] 1.29/1.32 4) f1#(I6, I7) -> f2#(I8, I9) [0 <= I6 - 1 /\ -1 <= I9 - 1 /\ -1 <= I7 - 1 /\ -1 <= I8 - 1] 1.29/1.32 1.29/1.32 We have the following SCCs. 1.29/1.32 { 1, 2, 3 } 1.29/1.32 1.29/1.32 DP problem for innermost termination. 1.29/1.32 P = 1.29/1.32 f3#(I0, I1) -> f3#(I0, I1 - 1) [0 <= I1 - 1] 1.29/1.32 f3#(I2, I3) -> f2#(0, I2 - 1) [0 = I3] 1.29/1.32 f2#(I4, I5) -> f3#(I5, I4) [0 <= I5 - 1] 1.29/1.32 R = 1.29/1.32 init(x1, x2) -> f1(rnd1, rnd2) 1.29/1.32 f3(I0, I1) -> f3(I0, I1 - 1) [0 <= I1 - 1] 1.29/1.32 f3(I2, I3) -> f2(0, I2 - 1) [0 = I3] 1.29/1.32 f2(I4, I5) -> f3(I5, I4) [0 <= I5 - 1] 1.29/1.32 f1(I6, I7) -> f2(I8, I9) [0 <= I6 - 1 /\ -1 <= I9 - 1 /\ -1 <= I7 - 1 /\ -1 <= I8 - 1] 1.29/1.32 1.29/1.32 We use the basic value criterion with the projection function NU: 1.29/1.32 NU[f2#(z1,z2)] = z1 1.29/1.32 NU[f3#(z1,z2)] = z2 1.29/1.32 1.29/1.32 This gives the following inequalities: 1.29/1.32 0 <= I1 - 1 ==> I1 >! I1 - 1 1.29/1.32 0 = I3 ==> I3 (>! \union =) 0 1.29/1.32 0 <= I5 - 1 ==> I4 (>! \union =) I4 1.29/1.32 1.29/1.32 We remove all the strictly oriented dependency pairs. 1.29/1.32 1.29/1.32 DP problem for innermost termination. 1.29/1.32 P = 1.29/1.32 f3#(I2, I3) -> f2#(0, I2 - 1) [0 = I3] 1.29/1.32 f2#(I4, I5) -> f3#(I5, I4) [0 <= I5 - 1] 1.29/1.32 R = 1.29/1.32 init(x1, x2) -> f1(rnd1, rnd2) 1.29/1.32 f3(I0, I1) -> f3(I0, I1 - 1) [0 <= I1 - 1] 1.29/1.32 f3(I2, I3) -> f2(0, I2 - 1) [0 = I3] 1.29/1.32 f2(I4, I5) -> f3(I5, I4) [0 <= I5 - 1] 1.29/1.32 f1(I6, I7) -> f2(I8, I9) [0 <= I6 - 1 /\ -1 <= I9 - 1 /\ -1 <= I7 - 1 /\ -1 <= I8 - 1] 1.29/1.32 1.29/1.32 We use the reverse value criterion with the projection function NU: 1.29/1.32 NU[f2#(z1,z2)] = z2 - 1 + -1 * 0 1.29/1.32 NU[f3#(z1,z2)] = z1 - 1 - 1 + -1 * 0 1.29/1.32 1.29/1.32 This gives the following inequalities: 1.29/1.32 0 = I3 ==> I2 - 1 - 1 + -1 * 0 >= I2 - 1 - 1 + -1 * 0 1.29/1.32 0 <= I5 - 1 ==> I5 - 1 + -1 * 0 > I5 - 1 - 1 + -1 * 0 with I5 - 1 + -1 * 0 >= 0 1.29/1.32 1.29/1.32 We remove all the strictly oriented dependency pairs. 1.29/1.32 1.29/1.32 DP problem for innermost termination. 1.29/1.32 P = 1.29/1.32 f3#(I2, I3) -> f2#(0, I2 - 1) [0 = I3] 1.29/1.32 R = 1.29/1.32 init(x1, x2) -> f1(rnd1, rnd2) 1.29/1.32 f3(I0, I1) -> f3(I0, I1 - 1) [0 <= I1 - 1] 1.29/1.32 f3(I2, I3) -> f2(0, I2 - 1) [0 = I3] 1.29/1.32 f2(I4, I5) -> f3(I5, I4) [0 <= I5 - 1] 1.29/1.32 f1(I6, I7) -> f2(I8, I9) [0 <= I6 - 1 /\ -1 <= I9 - 1 /\ -1 <= I7 - 1 /\ -1 <= I8 - 1] 1.29/1.32 1.29/1.32 The dependency graph for this problem is: 1.29/1.32 2 -> 1.29/1.32 Where: 1.29/1.32 2) f3#(I2, I3) -> f2#(0, I2 - 1) [0 = I3] 1.29/1.32 1.29/1.32 We have the following SCCs. 1.29/1.32 1.29/4.30 EOF