0.00/0.16 YES 0.00/0.16 0.00/0.16 DP problem for innermost termination. 0.00/0.16 P = 0.00/0.16 cond#(true, x, y) -> minus#(x, y + 1) 0.00/0.16 minus#(I2, I3) -> cond#(I2 >= I3 + 1, I2, I3) 0.00/0.16 R = 0.00/0.16 cond(true, x, y) -> 1 + minus(x, y + 1) 0.00/0.16 cond(false, I0, I1) -> 0 0.00/0.16 minus(I2, I3) -> cond(I2 >= I3 + 1, I2, I3) 0.00/0.16 0.00/0.16 This problem is converted using chaining, where edges between chained DPs are removed. 0.00/0.16 0.00/0.16 DP problem for innermost termination. 0.00/0.16 P = 0.00/0.16 cond#(true, x, y) -> minus#(x, y + 1) 0.00/0.16 minus#(I2, I3) -> cond#(I2 >= I3 + 1, I2, I3) 0.00/0.16 minus#(I2, I3) -> minus#(I2, I3 + 1) [I2 >= I3 + 1] 0.00/0.16 R = 0.00/0.16 cond(true, x, y) -> 1 + minus(x, y + 1) 0.00/0.16 cond(false, I0, I1) -> 0 0.00/0.16 minus(I2, I3) -> cond(I2 >= I3 + 1, I2, I3) 0.00/0.16 0.00/0.16 The dependency graph for this problem is: 0.00/0.16 0 -> 2, 1 0.00/0.16 1 -> 0.00/0.16 2 -> 2, 1 0.00/0.16 Where: 0.00/0.16 0) cond#(true, x, y) -> minus#(x, y + 1) 0.00/0.16 1) minus#(I2, I3) -> cond#(I2 >= I3 + 1, I2, I3) 0.00/0.16 2) minus#(I2, I3) -> minus#(I2, I3 + 1) [I2 >= I3 + 1] 0.00/0.16 0.00/0.16 We have the following SCCs. 0.00/0.16 { 2 } 0.00/0.16 0.00/0.16 DP problem for innermost termination. 0.00/0.16 P = 0.00/0.16 minus#(I2, I3) -> minus#(I2, I3 + 1) [I2 >= I3 + 1] 0.00/0.16 R = 0.00/0.16 cond(true, x, y) -> 1 + minus(x, y + 1) 0.00/0.16 cond(false, I0, I1) -> 0 0.00/0.16 minus(I2, I3) -> cond(I2 >= I3 + 1, I2, I3) 0.00/0.16 0.00/0.16 We use the reverse value criterion with the projection function NU: 0.00/0.16 NU[minus#(z1,z2)] = z1 + -1 * (z2 + 1) 0.00/0.16 0.00/0.16 This gives the following inequalities: 0.00/0.16 I2 >= I3 + 1 ==> I2 + -1 * (I3 + 1) > I2 + -1 * (I3 + 1 + 1) with I2 + -1 * (I3 + 1) >= 0 0.00/0.16 0.00/0.16 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. 0.00/3.14 EOF