0.52/0.60 YES 0.52/0.60 0.52/0.60 DP problem for innermost termination. 0.52/0.60 P = 0.52/0.60 cond#(true, I0, I1, I2) -> d#(I0, I1 + 1, I1 + 1 + I2) 0.52/0.60 dNat#(true, I3, I4, I5) -> cond#(I3 >= I5, I3, I4 - 1, I5) 0.52/0.60 d#(I6, I7, I8) -> dNat#(I6 >= 0 && I7 >= 1 && I8 >= 0, I6, I7, I8) 0.52/0.60 divNat#(true, I9, I10) -> d#(I9, I10, 0) 0.52/0.60 div#(I11, I12) -> divNat#(I11 >= 0 && I12 >= 1, I11, I12) 0.52/0.60 R = 0.52/0.60 cond(false, x, y, z) -> 0 0.52/0.60 cond(true, I0, I1, I2) -> 1 + d(I0, I1 + 1, I1 + 1 + I2) 0.52/0.60 dNat(true, I3, I4, I5) -> cond(I3 >= I5, I3, I4 - 1, I5) 0.52/0.60 d(I6, I7, I8) -> dNat(I6 >= 0 && I7 >= 1 && I8 >= 0, I6, I7, I8) 0.52/0.60 divNat(true, I9, I10) -> d(I9, I10, 0) 0.52/0.60 div(I11, I12) -> divNat(I11 >= 0 && I12 >= 1, I11, I12) 0.52/0.60 0.52/0.60 This problem is converted using chaining, where edges between chained DPs are removed. 0.52/0.60 0.52/0.60 DP problem for innermost termination. 0.52/0.60 P = 0.52/0.60 cond#(true, I0, I1, I2) -> d#(I0, I1 + 1, I1 + 1 + I2) 0.52/0.60 dNat#(true, I3, I4, I5) -> cond#(I3 >= I5, I3, I4 - 1, I5) 0.52/0.60 d#(I6, I7, I8) -> dNat#(I6 >= 0 && I7 >= 1 && I8 >= 0, I6, I7, I8) 0.52/0.60 divNat#(true, I9, I10) -> d#(I9, I10, 0) 0.52/0.60 div#(I11, I12) -> divNat#(I11 >= 0 && I12 >= 1, I11, I12) 0.52/0.60 div#(I11, I12) -> d#(I11, I12, 0) [I11 >= 0 && I12 >= 1] 0.52/0.60 d#(I6, I7, I8) -> cond#(I6 >= I8, I6, I7 - 1, I8) [I6 >= 0 && I7 >= 1 && I8 >= 0] 0.52/0.60 d#(I6, I7, I8) -> d#(I6, I7 - 1 + 1, I7 - 1 + 1 + I8) [I6 >= 0 && I7 >= 1 && I8 >= 0, I6 >= I8] 0.52/0.60 dNat#(true, I3, I4, I5) -> d#(I3, I4 - 1 + 1, I4 - 1 + 1 + I5) [I3 >= I5] 0.52/0.60 R = 0.52/0.60 cond(false, x, y, z) -> 0 0.52/0.60 cond(true, I0, I1, I2) -> 1 + d(I0, I1 + 1, I1 + 1 + I2) 0.52/0.60 dNat(true, I3, I4, I5) -> cond(I3 >= I5, I3, I4 - 1, I5) 0.52/0.60 d(I6, I7, I8) -> dNat(I6 >= 0 && I7 >= 1 && I8 >= 0, I6, I7, I8) 0.52/0.60 divNat(true, I9, I10) -> d(I9, I10, 0) 0.52/0.60 div(I11, I12) -> divNat(I11 >= 0 && I12 >= 1, I11, I12) 0.52/0.60 0.52/0.60 The dependency graph for this problem is: 0.52/0.60 0 -> 7, 6, 2 0.52/0.60 1 -> 0.52/0.60 2 -> 0.52/0.60 3 -> 7, 6, 2 0.52/0.60 4 -> 0.52/0.60 5 -> 7, 6, 2 0.52/0.60 6 -> 0.52/0.60 7 -> 7, 2, 6 0.52/0.60 8 -> 2, 6, 7 0.52/0.60 Where: 0.52/0.60 0) cond#(true, I0, I1, I2) -> d#(I0, I1 + 1, I1 + 1 + I2) 0.52/0.60 1) dNat#(true, I3, I4, I5) -> cond#(I3 >= I5, I3, I4 - 1, I5) 0.52/0.60 2) d#(I6, I7, I8) -> dNat#(I6 >= 0 && I7 >= 1 && I8 >= 0, I6, I7, I8) 0.52/0.60 3) divNat#(true, I9, I10) -> d#(I9, I10, 0) 0.52/0.60 4) div#(I11, I12) -> divNat#(I11 >= 0 && I12 >= 1, I11, I12) 0.52/0.60 5) div#(I11, I12) -> d#(I11, I12, 0) [I11 >= 0 && I12 >= 1] 0.52/0.60 6) d#(I6, I7, I8) -> cond#(I6 >= I8, I6, I7 - 1, I8) [I6 >= 0 && I7 >= 1 && I8 >= 0] 0.52/0.60 7) d#(I6, I7, I8) -> d#(I6, I7 - 1 + 1, I7 - 1 + 1 + I8) [I6 >= 0 && I7 >= 1 && I8 >= 0, I6 >= I8] 0.52/0.60 8) dNat#(true, I3, I4, I5) -> d#(I3, I4 - 1 + 1, I4 - 1 + 1 + I5) [I3 >= I5] 0.52/0.60 0.52/0.60 We have the following SCCs. 0.52/0.60 { 7 } 0.52/0.60 0.52/0.60 DP problem for innermost termination. 0.52/0.60 P = 0.52/0.60 d#(I6, I7, I8) -> d#(I6, I7 - 1 + 1, I7 - 1 + 1 + I8) [I6 >= 0 && I7 >= 1 && I8 >= 0, I6 >= I8] 0.52/0.60 R = 0.52/0.60 cond(false, x, y, z) -> 0 0.52/0.60 cond(true, I0, I1, I2) -> 1 + d(I0, I1 + 1, I1 + 1 + I2) 0.52/0.60 dNat(true, I3, I4, I5) -> cond(I3 >= I5, I3, I4 - 1, I5) 0.52/0.60 d(I6, I7, I8) -> dNat(I6 >= 0 && I7 >= 1 && I8 >= 0, I6, I7, I8) 0.52/0.60 divNat(true, I9, I10) -> d(I9, I10, 0) 0.52/0.60 div(I11, I12) -> divNat(I11 >= 0 && I12 >= 1, I11, I12) 0.52/0.60 0.52/0.60 We use the reverse value criterion with the projection function NU: 0.52/0.60 NU[d#(z1,z2,z3)] = z1 + -1 * z3 0.52/0.60 0.52/0.60 This gives the following inequalities: 0.52/0.60 I6 >= 0 && I7 >= 1 && I8 >= 0/\I6 >= I8 ==> I6 + -1 * I8 > I6 + -1 * (I7 - 1 + 1 + I8) with I6 + -1 * I8 >= 0 0.52/0.60 0.52/0.60 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. 0.52/3.58 EOF