0.00/0.06 MAYBE 0.00/0.06 0.00/0.06 DP problem for innermost termination. 0.00/0.06 P = 0.00/0.06 length#(cons(x, l)) -> length#(l) 0.00/0.06 cond#(false, n, B2) -> tail#(nthtail(n + 1, B2)) 0.00/0.06 cond#(false, n, B2) -> nthtail#(n + 1, B2) 0.00/0.06 nthtail#(I1, B4) -> cond#(I1 >= length(B4), I1, B4) 0.00/0.06 nthtail#(I1, B4) -> length#(B4) 0.00/0.06 R = 0.00/0.06 length(cons(x, l)) -> 1 + length(l) 0.00/0.06 length(nil) -> 0 0.00/0.06 tail(cons(B0, B1)) -> B1 0.00/0.06 tail(nil) -> nil 0.00/0.06 cond(false, n, B2) -> tail(nthtail(n + 1, B2)) 0.00/0.06 cond(true, I0, B3) -> B3 0.00/0.06 nthtail(I1, B4) -> cond(I1 >= length(B4), I1, B4) 0.00/0.06 0.00/0.06 The dependency graph for this problem is: 0.00/0.06 0 -> 0 0.00/0.06 1 -> 0.00/0.06 2 -> 3, 4 0.00/0.06 3 -> 1, 2 0.00/0.06 4 -> 0 0.00/0.06 Where: 0.00/0.06 0) length#(cons(x, l)) -> length#(l) 0.00/0.06 1) cond#(false, n, B2) -> tail#(nthtail(n + 1, B2)) 0.00/0.06 2) cond#(false, n, B2) -> nthtail#(n + 1, B2) 0.00/0.06 3) nthtail#(I1, B4) -> cond#(I1 >= length(B4), I1, B4) 0.00/0.06 4) nthtail#(I1, B4) -> length#(B4) 0.00/0.06 0.00/0.06 We have the following SCCs. 0.00/0.06 { 2, 3 } 0.00/0.06 { 0 } 0.00/0.06 0.00/0.06 DP problem for innermost termination. 0.00/0.06 P = 0.00/0.06 length#(cons(x, l)) -> length#(l) 0.00/0.06 R = 0.00/0.06 length(cons(x, l)) -> 1 + length(l) 0.00/0.06 length(nil) -> 0 0.00/0.06 tail(cons(B0, B1)) -> B1 0.00/0.06 tail(nil) -> nil 0.00/0.06 cond(false, n, B2) -> tail(nthtail(n + 1, B2)) 0.00/0.06 cond(true, I0, B3) -> B3 0.00/0.06 nthtail(I1, B4) -> cond(I1 >= length(B4), I1, B4) 0.00/0.06 0.00/0.06 We use the subterm criterion with the projection function NU: 0.00/0.06 NU[length#(x0)] = x0 0.00/0.06 0.00/0.06 This gives the following inequalities: 0.00/0.06 cons(x, l) |> l 0.00/0.06 0.00/0.06 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. 0.00/0.06 0.00/0.06 DP problem for innermost termination. 0.00/0.06 P = 0.00/0.06 cond#(false, n, B2) -> nthtail#(n + 1, B2) 0.00/0.06 nthtail#(I1, B4) -> cond#(I1 >= length(B4), I1, B4) 0.00/0.06 R = 0.00/0.06 length(cons(x, l)) -> 1 + length(l) 0.00/0.06 length(nil) -> 0 0.00/0.06 tail(cons(B0, B1)) -> B1 0.00/0.06 tail(nil) -> nil 0.00/0.06 cond(false, n, B2) -> tail(nthtail(n + 1, B2)) 0.00/0.06 cond(true, I0, B3) -> B3 0.00/0.06 nthtail(I1, B4) -> cond(I1 >= length(B4), I1, B4) 0.00/0.06 0.00/3.04 EOF