1.68/1.69 YES 1.68/1.69 1.68/1.69 DP problem for innermost termination. 1.68/1.69 P = 1.68/1.69 f#(true, x, y, z) -> f#(x > y + z, x, y, z + 1) 1.68/1.69 f#(true, I0, I1, I2) -> f#(I0 > I1 + I2, I0, I1 + 1, I2) 1.68/1.69 R = 1.68/1.69 f(true, x, y, z) -> f(x > y + z, x, y, z + 1) 1.68/1.69 f(true, I0, I1, I2) -> f(I0 > I1 + I2, I0, I1 + 1, I2) 1.68/1.69 1.68/1.69 This problem is converted using chaining, where edges between chained DPs are removed. 1.68/1.69 1.68/1.69 DP problem for innermost termination. 1.68/1.69 P = 1.68/1.69 f#(true, x, y, z) -> f_2#(x, y, z) 1.68/1.69 f#(true, I0, I1, I2) -> f_1#(I0, I1, I2) 1.68/1.69 f_1#(I0, I1, I2) -> f#(I0 > I1 + I2, I0, I1 + 1, I2) 1.68/1.69 f_2#(x, y, z) -> f#(x > y + z, x, y, z + 1) 1.68/1.69 f_2#(x, y, z) -> f_1#(x, y, z + 1) [x > y + z] 1.68/1.69 f_2#(x, y, z) -> f_2#(x, y, z + 1) [x > y + z] 1.68/1.69 f_1#(I0, I1, I2) -> f_1#(I0, I1 + 1, I2) [I0 > I1 + I2] 1.68/1.69 f_1#(I0, I1, I2) -> f_2#(I0, I1 + 1, I2) [I0 > I1 + I2] 1.68/1.69 R = 1.68/1.69 f(true, x, y, z) -> f(x > y + z, x, y, z + 1) 1.68/1.69 f(true, I0, I1, I2) -> f(I0 > I1 + I2, I0, I1 + 1, I2) 1.68/1.69 1.68/1.69 The dependency graph for this problem is: 1.68/1.69 0 -> 5, 4, 3 1.68/1.69 1 -> 7, 6, 2 1.68/1.69 2 -> 1.68/1.69 3 -> 1.68/1.69 4 -> 7, 6, 2 1.68/1.69 5 -> 5, 3, 4 1.68/1.69 6 -> 7, 6, 2 1.68/1.69 7 -> 3, 4, 5 1.68/1.69 Where: 1.68/1.69 0) f#(true, x, y, z) -> f_2#(x, y, z) 1.68/1.69 1) f#(true, I0, I1, I2) -> f_1#(I0, I1, I2) 1.68/1.69 2) f_1#(I0, I1, I2) -> f#(I0 > I1 + I2, I0, I1 + 1, I2) 1.68/1.69 3) f_2#(x, y, z) -> f#(x > y + z, x, y, z + 1) 1.68/1.69 4) f_2#(x, y, z) -> f_1#(x, y, z + 1) [x > y + z] 1.68/1.69 5) f_2#(x, y, z) -> f_2#(x, y, z + 1) [x > y + z] 1.68/1.69 6) f_1#(I0, I1, I2) -> f_1#(I0, I1 + 1, I2) [I0 > I1 + I2] 1.68/1.69 7) f_1#(I0, I1, I2) -> f_2#(I0, I1 + 1, I2) [I0 > I1 + I2] 1.68/1.69 1.68/1.69 We have the following SCCs. 1.68/1.69 { 4, 5, 6, 7 } 1.68/1.69 1.68/1.69 DP problem for innermost termination. 1.68/1.69 P = 1.68/1.69 f_2#(x, y, z) -> f_1#(x, y, z + 1) [x > y + z] 1.68/1.69 f_2#(x, y, z) -> f_2#(x, y, z + 1) [x > y + z] 1.68/1.69 f_1#(I0, I1, I2) -> f_1#(I0, I1 + 1, I2) [I0 > I1 + I2] 1.68/1.69 f_1#(I0, I1, I2) -> f_2#(I0, I1 + 1, I2) [I0 > I1 + I2] 1.68/1.69 R = 1.68/1.69 f(true, x, y, z) -> f(x > y + z, x, y, z + 1) 1.68/1.69 f(true, I0, I1, I2) -> f(I0 > I1 + I2, I0, I1 + 1, I2) 1.68/1.69 1.68/1.69 We use the reverse value criterion with the projection function NU: 1.68/1.69 NU[f_1#(z1,z2,z3)] = z1 + -1 * (z2 + 1 + z3) 1.68/1.69 NU[f_2#(z1,z2,z3)] = z1 + -1 * (z2 + (z3 + 1)) 1.68/1.69 1.68/1.69 This gives the following inequalities: 1.68/1.69 x > y + z ==> x + -1 * (y + (z + 1)) > x + -1 * (y + 1 + (z + 1)) with x + -1 * (y + (z + 1)) >= 0 1.68/1.69 x > y + z ==> x + -1 * (y + (z + 1)) > x + -1 * (y + (z + 1 + 1)) with x + -1 * (y + (z + 1)) >= 0 1.68/1.69 I0 > I1 + I2 ==> I0 + -1 * (I1 + 1 + I2) > I0 + -1 * (I1 + 1 + 1 + I2) with I0 + -1 * (I1 + 1 + I2) >= 0 1.68/1.69 I0 > I1 + I2 ==> I0 + -1 * (I1 + 1 + I2) > I0 + -1 * (I1 + 1 + (I2 + 1)) with I0 + -1 * (I1 + 1 + I2) >= 0 1.68/1.69 1.68/1.69 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. 1.68/4.67 EOF