YES DP problem for innermost termination. P = init#(x1, x2, x3) -> f3#(rnd1, rnd2, rnd3) f5#(I0, I1, I2) -> f5#(I3, I1 - 1, I4) [-1 <= I4 - 1 /\ 1 <= I3 - 1 /\ -1 <= I2 - 1 /\ 1 <= I0 - 1 /\ I4 <= I2 /\ I4 + 2 <= I0 /\ I3 - 2 <= I2 /\ 0 <= I1 - 1 /\ I3 <= I0] f5#(I5, I6, I7) -> f5#(I8, I6, I9) [-1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5] f2#(I10, I11, I12) -> f5#(I13, I14, I15) [-1 <= I15 - 1 /\ 0 <= I13 - 1 /\ 0 <= I10 - 1 /\ I15 + 1 <= I10 /\ I13 <= I10 /\ 1 <= I11 - 1 /\ -1 <= I14 - 1] f4#(I16, I17, I18) -> f4#(I16 - 1, I19, I20) [0 <= I16 - 1] f3#(I21, I22, I23) -> f4#(I24, I25, I26) [0 <= I21 - 1 /\ -1 <= I24 - 1 /\ -1 <= I22 - 1] f3#(I27, I28, I29) -> f2#(I30, I28, I31) [-1 <= I30 - 1 /\ 0 <= I27 - 1] f1#(I32, I33, I34) -> f2#(I35, I36, I37) [-1 <= I35 - 1 /\ -1 <= I33 - 1 /\ 0 <= I32 - 1 /\ I35 <= I33] R = init(x1, x2, x3) -> f3(rnd1, rnd2, rnd3) f5(I0, I1, I2) -> f5(I3, I1 - 1, I4) [-1 <= I4 - 1 /\ 1 <= I3 - 1 /\ -1 <= I2 - 1 /\ 1 <= I0 - 1 /\ I4 <= I2 /\ I4 + 2 <= I0 /\ I3 - 2 <= I2 /\ 0 <= I1 - 1 /\ I3 <= I0] f5(I5, I6, I7) -> f5(I8, I6, I9) [-1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5] f2(I10, I11, I12) -> f5(I13, I14, I15) [-1 <= I15 - 1 /\ 0 <= I13 - 1 /\ 0 <= I10 - 1 /\ I15 + 1 <= I10 /\ I13 <= I10 /\ 1 <= I11 - 1 /\ -1 <= I14 - 1] f4(I16, I17, I18) -> f4(I16 - 1, I19, I20) [0 <= I16 - 1] f3(I21, I22, I23) -> f4(I24, I25, I26) [0 <= I21 - 1 /\ -1 <= I24 - 1 /\ -1 <= I22 - 1] f3(I27, I28, I29) -> f2(I30, I28, I31) [-1 <= I30 - 1 /\ 0 <= I27 - 1] f1(I32, I33, I34) -> f2(I35, I36, I37) [-1 <= I35 - 1 /\ -1 <= I33 - 1 /\ 0 <= I32 - 1 /\ I35 <= I33] The dependency graph for this problem is: 0 -> 5, 6 1 -> 1, 2 2 -> 1, 2 3 -> 1, 2 4 -> 4 5 -> 4 6 -> 3 7 -> 3 Where: 0) init#(x1, x2, x3) -> f3#(rnd1, rnd2, rnd3) 1) f5#(I0, I1, I2) -> f5#(I3, I1 - 1, I4) [-1 <= I4 - 1 /\ 1 <= I3 - 1 /\ -1 <= I2 - 1 /\ 1 <= I0 - 1 /\ I4 <= I2 /\ I4 + 2 <= I0 /\ I3 - 2 <= I2 /\ 0 <= I1 - 1 /\ I3 <= I0] 2) f5#(I5, I6, I7) -> f5#(I8, I6, I9) [-1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5] 3) f2#(I10, I11, I12) -> f5#(I13, I14, I15) [-1 <= I15 - 1 /\ 0 <= I13 - 1 /\ 0 <= I10 - 1 /\ I15 + 1 <= I10 /\ I13 <= I10 /\ 1 <= I11 - 1 /\ -1 <= I14 - 1] 4) f4#(I16, I17, I18) -> f4#(I16 - 1, I19, I20) [0 <= I16 - 1] 5) f3#(I21, I22, I23) -> f4#(I24, I25, I26) [0 <= I21 - 1 /\ -1 <= I24 - 1 /\ -1 <= I22 - 1] 6) f3#(I27, I28, I29) -> f2#(I30, I28, I31) [-1 <= I30 - 1 /\ 0 <= I27 - 1] 7) f1#(I32, I33, I34) -> f2#(I35, I36, I37) [-1 <= I35 - 1 /\ -1 <= I33 - 1 /\ 0 <= I32 - 1 /\ I35 <= I33] We have the following SCCs. { 4 } { 1, 2 } DP problem for innermost termination. P = f5#(I0, I1, I2) -> f5#(I3, I1 - 1, I4) [-1 <= I4 - 1 /\ 1 <= I3 - 1 /\ -1 <= I2 - 1 /\ 1 <= I0 - 1 /\ I4 <= I2 /\ I4 + 2 <= I0 /\ I3 - 2 <= I2 /\ 0 <= I1 - 1 /\ I3 <= I0] f5#(I5, I6, I7) -> f5#(I8, I6, I9) [-1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5] R = init(x1, x2, x3) -> f3(rnd1, rnd2, rnd3) f5(I0, I1, I2) -> f5(I3, I1 - 1, I4) [-1 <= I4 - 1 /\ 1 <= I3 - 1 /\ -1 <= I2 - 1 /\ 1 <= I0 - 1 /\ I4 <= I2 /\ I4 + 2 <= I0 /\ I3 - 2 <= I2 /\ 0 <= I1 - 1 /\ I3 <= I0] f5(I5, I6, I7) -> f5(I8, I6, I9) [-1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5] f2(I10, I11, I12) -> f5(I13, I14, I15) [-1 <= I15 - 1 /\ 0 <= I13 - 1 /\ 0 <= I10 - 1 /\ I15 + 1 <= I10 /\ I13 <= I10 /\ 1 <= I11 - 1 /\ -1 <= I14 - 1] f4(I16, I17, I18) -> f4(I16 - 1, I19, I20) [0 <= I16 - 1] f3(I21, I22, I23) -> f4(I24, I25, I26) [0 <= I21 - 1 /\ -1 <= I24 - 1 /\ -1 <= I22 - 1] f3(I27, I28, I29) -> f2(I30, I28, I31) [-1 <= I30 - 1 /\ 0 <= I27 - 1] f1(I32, I33, I34) -> f2(I35, I36, I37) [-1 <= I35 - 1 /\ -1 <= I33 - 1 /\ 0 <= I32 - 1 /\ I35 <= I33] We use the basic value criterion with the projection function NU: NU[f5#(z1,z2,z3)] = z2 This gives the following inequalities: -1 <= I4 - 1 /\ 1 <= I3 - 1 /\ -1 <= I2 - 1 /\ 1 <= I0 - 1 /\ I4 <= I2 /\ I4 + 2 <= I0 /\ I3 - 2 <= I2 /\ 0 <= I1 - 1 /\ I3 <= I0 ==> I1 >! I1 - 1 -1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5 ==> I6 (>! \union =) I6 We remove all the strictly oriented dependency pairs. DP problem for innermost termination. P = f5#(I5, I6, I7) -> f5#(I8, I6, I9) [-1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5] R = init(x1, x2, x3) -> f3(rnd1, rnd2, rnd3) f5(I0, I1, I2) -> f5(I3, I1 - 1, I4) [-1 <= I4 - 1 /\ 1 <= I3 - 1 /\ -1 <= I2 - 1 /\ 1 <= I0 - 1 /\ I4 <= I2 /\ I4 + 2 <= I0 /\ I3 - 2 <= I2 /\ 0 <= I1 - 1 /\ I3 <= I0] f5(I5, I6, I7) -> f5(I8, I6, I9) [-1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5] f2(I10, I11, I12) -> f5(I13, I14, I15) [-1 <= I15 - 1 /\ 0 <= I13 - 1 /\ 0 <= I10 - 1 /\ I15 + 1 <= I10 /\ I13 <= I10 /\ 1 <= I11 - 1 /\ -1 <= I14 - 1] f4(I16, I17, I18) -> f4(I16 - 1, I19, I20) [0 <= I16 - 1] f3(I21, I22, I23) -> f4(I24, I25, I26) [0 <= I21 - 1 /\ -1 <= I24 - 1 /\ -1 <= I22 - 1] f3(I27, I28, I29) -> f2(I30, I28, I31) [-1 <= I30 - 1 /\ 0 <= I27 - 1] f1(I32, I33, I34) -> f2(I35, I36, I37) [-1 <= I35 - 1 /\ -1 <= I33 - 1 /\ 0 <= I32 - 1 /\ I35 <= I33] We use the basic value criterion with the projection function NU: NU[f5#(z1,z2,z3)] = z3 This gives the following inequalities: -1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5 ==> I7 >! I9 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. DP problem for innermost termination. P = f4#(I16, I17, I18) -> f4#(I16 - 1, I19, I20) [0 <= I16 - 1] R = init(x1, x2, x3) -> f3(rnd1, rnd2, rnd3) f5(I0, I1, I2) -> f5(I3, I1 - 1, I4) [-1 <= I4 - 1 /\ 1 <= I3 - 1 /\ -1 <= I2 - 1 /\ 1 <= I0 - 1 /\ I4 <= I2 /\ I4 + 2 <= I0 /\ I3 - 2 <= I2 /\ 0 <= I1 - 1 /\ I3 <= I0] f5(I5, I6, I7) -> f5(I8, I6, I9) [-1 <= I9 - 1 /\ 0 <= I8 - 1 /\ 0 <= I7 - 1 /\ 2 <= I5 - 1 /\ I9 + 1 <= I7 /\ I9 + 3 <= I5 /\ I8 <= I7 /\ I8 + 2 <= I5] f2(I10, I11, I12) -> f5(I13, I14, I15) [-1 <= I15 - 1 /\ 0 <= I13 - 1 /\ 0 <= I10 - 1 /\ I15 + 1 <= I10 /\ I13 <= I10 /\ 1 <= I11 - 1 /\ -1 <= I14 - 1] f4(I16, I17, I18) -> f4(I16 - 1, I19, I20) [0 <= I16 - 1] f3(I21, I22, I23) -> f4(I24, I25, I26) [0 <= I21 - 1 /\ -1 <= I24 - 1 /\ -1 <= I22 - 1] f3(I27, I28, I29) -> f2(I30, I28, I31) [-1 <= I30 - 1 /\ 0 <= I27 - 1] f1(I32, I33, I34) -> f2(I35, I36, I37) [-1 <= I35 - 1 /\ -1 <= I33 - 1 /\ 0 <= I32 - 1 /\ I35 <= I33] We use the basic value criterion with the projection function NU: NU[f4#(z1,z2,z3)] = z1 This gives the following inequalities: 0 <= I16 - 1 ==> I16 >! I16 - 1 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed.