0.00/0.61 MAYBE 0.00/0.61 0.00/0.61 DP problem for innermost termination. 0.00/0.61 P = 0.00/0.61 max#(cons(I2, l)) -> if#(I2 > max(l), I2, max(l)) 0.00/0.61 max#(cons(I2, l)) -> max#(l) 0.00/0.61 max#(cons(I2, l)) -> max#(l) 0.00/0.61 member#(n, cons(m, B0)) -> member#(n, B0) 0.00/0.61 cond2#(false, I4, B1) -> st#(I4 + 1, B1) 0.00/0.61 cond1#(false, I6, B3) -> cond2#(I6 > max(B3), I6, B3) 0.00/0.61 cond1#(false, I6, B3) -> max#(B3) 0.00/0.61 cond1#(true, I7, B4) -> st#(I7 + 1, B4) 0.00/0.61 stNat#(true, I8, B5) -> cond1#(member(I8, B5), I8, B5) 0.00/0.61 stNat#(true, I8, B5) -> member#(I8, B5) 0.00/0.61 st#(I9, B6) -> stNat#(I9 >= 0, I9, B6) 0.00/0.61 sort#(B7) -> st#(0, B7) 0.00/0.61 R = 0.00/0.61 if(false, u, v) -> v 0.00/0.61 if(true, I0, I1) -> I0 0.00/0.61 max(cons(I2, l)) -> if(I2 > max(l), I2, max(l)) 0.00/0.61 max(nil) -> 0 0.00/0.61 member(n, cons(m, B0)) -> n = m || member(n, B0) 0.00/0.61 member(I3, nil) -> false 0.00/0.61 cond2(false, I4, B1) -> st(I4 + 1, B1) 0.00/0.61 cond2(true, I5, B2) -> nil 0.00/0.61 cond1(false, I6, B3) -> cond2(I6 > max(B3), I6, B3) 0.00/0.61 cond1(true, I7, B4) -> cons(I7, st(I7 + 1, B4)) 0.00/0.61 stNat(true, I8, B5) -> cond1(member(I8, B5), I8, B5) 0.00/0.61 st(I9, B6) -> stNat(I9 >= 0, I9, B6) 0.00/0.61 sort(B7) -> st(0, B7) 0.00/0.61 0.00/0.61 This problem is converted using chaining, where edges between chained DPs are removed. 0.00/0.61 0.00/0.61 DP problem for innermost termination. 0.00/0.61 P = 0.00/0.61 max#(cons(I2, l)) -> if#(I2 > max(l), I2, max(l)) 0.00/0.61 max#(cons(I2, l)) -> max#(l) 0.00/0.61 max#(cons(I2, l)) -> max#(l) 0.00/0.61 member#(n, cons(m, B0)) -> member#(n, B0) 0.00/0.61 cond2#(false, I4, B1) -> st#(I4 + 1, B1) 0.00/0.61 cond1#(false, I6, B3) -> cond2#(I6 > max(B3), I6, B3) 0.00/0.61 cond1#(false, I6, B3) -> max#(B3) 0.00/0.61 cond1#(true, I7, B4) -> st#(I7 + 1, B4) 0.00/0.61 stNat#(true, I8, B5) -> cond1#(member(I8, B5), I8, B5) 0.00/0.61 stNat#(true, I8, B5) -> member#(I8, B5) 0.00/0.61 st#(I9, B6) -> stNat#(I9 >= 0, I9, B6) 0.00/0.61 sort#(B7) -> st#(0, B7) 0.00/0.61 st#(I9, B6) -> cond1#(member(I9, B6), I9, B6) [I9 >= 0] 0.00/0.61 st#(I9, B6) -> member#(I9, B6) [I9 >= 0] 0.00/0.61 R = 0.00/0.61 if(false, u, v) -> v 0.00/0.61 if(true, I0, I1) -> I0 0.00/0.61 max(cons(I2, l)) -> if(I2 > max(l), I2, max(l)) 0.00/0.61 max(nil) -> 0 0.00/0.61 member(n, cons(m, B0)) -> n = m || member(n, B0) 0.00/0.61 member(I3, nil) -> false 0.00/0.61 cond2(false, I4, B1) -> st(I4 + 1, B1) 0.00/0.61 cond2(true, I5, B2) -> nil 0.00/0.61 cond1(false, I6, B3) -> cond2(I6 > max(B3), I6, B3) 0.00/0.61 cond1(true, I7, B4) -> cons(I7, st(I7 + 1, B4)) 0.00/0.61 stNat(true, I8, B5) -> cond1(member(I8, B5), I8, B5) 0.00/0.61 st(I9, B6) -> stNat(I9 >= 0, I9, B6) 0.00/0.61 sort(B7) -> st(0, B7) 0.00/0.61 0.00/0.61 The dependency graph for this problem is: 0.00/0.61 0 -> 0.00/0.61 1 -> 0, 1, 2 0.00/0.61 2 -> 0, 1, 2 0.00/0.61 3 -> 3 0.00/0.61 4 -> 13, 12, 10 0.00/0.61 5 -> 4 0.00/0.61 6 -> 0, 1, 2 0.00/0.61 7 -> 13, 12, 10 0.00/0.61 8 -> 5, 6, 7 0.00/0.61 9 -> 3 0.00/0.61 10 -> 0.00/0.61 11 -> 13, 12, 10 0.00/0.61 12 -> 7, 6, 5 0.00/0.61 13 -> 3 0.00/0.61 Where: 0.00/0.61 0) max#(cons(I2, l)) -> if#(I2 > max(l), I2, max(l)) 0.00/0.61 1) max#(cons(I2, l)) -> max#(l) 0.00/0.61 2) max#(cons(I2, l)) -> max#(l) 0.00/0.61 3) member#(n, cons(m, B0)) -> member#(n, B0) 0.00/0.61 4) cond2#(false, I4, B1) -> st#(I4 + 1, B1) 0.00/0.61 5) cond1#(false, I6, B3) -> cond2#(I6 > max(B3), I6, B3) 0.00/0.61 6) cond1#(false, I6, B3) -> max#(B3) 0.00/0.61 7) cond1#(true, I7, B4) -> st#(I7 + 1, B4) 0.00/0.61 8) stNat#(true, I8, B5) -> cond1#(member(I8, B5), I8, B5) 0.00/0.61 9) stNat#(true, I8, B5) -> member#(I8, B5) 0.00/0.61 10) st#(I9, B6) -> stNat#(I9 >= 0, I9, B6) 0.00/0.61 11) sort#(B7) -> st#(0, B7) 0.00/0.61 12) st#(I9, B6) -> cond1#(member(I9, B6), I9, B6) [I9 >= 0] 0.00/0.61 13) st#(I9, B6) -> member#(I9, B6) [I9 >= 0] 0.00/0.61 0.00/0.61 We have the following SCCs. 0.00/0.61 { 4, 5, 7, 12 } 0.00/0.61 { 1, 2 } 0.00/0.61 { 3 } 0.00/0.61 0.00/0.61 DP problem for innermost termination. 0.00/0.61 P = 0.00/0.61 member#(n, cons(m, B0)) -> member#(n, B0) 0.00/0.61 R = 0.00/0.61 if(false, u, v) -> v 0.00/0.61 if(true, I0, I1) -> I0 0.00/0.61 max(cons(I2, l)) -> if(I2 > max(l), I2, max(l)) 0.00/0.61 max(nil) -> 0 0.00/0.61 member(n, cons(m, B0)) -> n = m || member(n, B0) 0.00/0.61 member(I3, nil) -> false 0.00/0.61 cond2(false, I4, B1) -> st(I4 + 1, B1) 0.00/0.61 cond2(true, I5, B2) -> nil 0.00/0.61 cond1(false, I6, B3) -> cond2(I6 > max(B3), I6, B3) 0.00/0.61 cond1(true, I7, B4) -> cons(I7, st(I7 + 1, B4)) 0.00/0.61 stNat(true, I8, B5) -> cond1(member(I8, B5), I8, B5) 0.00/0.61 st(I9, B6) -> stNat(I9 >= 0, I9, B6) 0.00/0.61 sort(B7) -> st(0, B7) 0.00/0.61 0.00/0.61 We use the subterm criterion with the projection function NU: 0.00/0.61 NU[member#(x0,x1)] = x1 0.00/0.61 0.00/0.61 This gives the following inequalities: 0.00/0.61 cons(m, B0) |> B0 0.00/0.61 0.00/0.61 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. 0.00/0.61 0.00/0.61 DP problem for innermost termination. 0.00/0.61 P = 0.00/0.61 max#(cons(I2, l)) -> max#(l) 0.00/0.61 max#(cons(I2, l)) -> max#(l) 0.00/0.61 R = 0.00/0.61 if(false, u, v) -> v 0.00/0.61 if(true, I0, I1) -> I0 0.00/0.61 max(cons(I2, l)) -> if(I2 > max(l), I2, max(l)) 0.00/0.61 max(nil) -> 0 0.00/0.61 member(n, cons(m, B0)) -> n = m || member(n, B0) 0.00/0.61 member(I3, nil) -> false 0.00/0.61 cond2(false, I4, B1) -> st(I4 + 1, B1) 0.00/0.61 cond2(true, I5, B2) -> nil 0.00/0.61 cond1(false, I6, B3) -> cond2(I6 > max(B3), I6, B3) 0.00/0.61 cond1(true, I7, B4) -> cons(I7, st(I7 + 1, B4)) 0.00/0.61 stNat(true, I8, B5) -> cond1(member(I8, B5), I8, B5) 0.00/0.61 st(I9, B6) -> stNat(I9 >= 0, I9, B6) 0.00/0.61 sort(B7) -> st(0, B7) 0.00/0.61 0.00/0.61 We use the subterm criterion with the projection function NU: 0.00/0.61 NU[max#(x0)] = x0 0.00/0.61 0.00/0.61 This gives the following inequalities: 0.00/0.61 cons(I2, l) |> l 0.00/0.61 cons(I2, l) |> l 0.00/0.61 0.00/0.61 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. 0.00/0.61 0.00/0.61 DP problem for innermost termination. 0.00/0.61 P = 0.00/0.61 cond2#(false, I4, B1) -> st#(I4 + 1, B1) 0.00/0.61 cond1#(false, I6, B3) -> cond2#(I6 > max(B3), I6, B3) 0.00/0.61 cond1#(true, I7, B4) -> st#(I7 + 1, B4) 0.00/0.61 st#(I9, B6) -> cond1#(member(I9, B6), I9, B6) [I9 >= 0] 0.00/0.61 R = 0.00/0.61 if(false, u, v) -> v 0.00/0.61 if(true, I0, I1) -> I0 0.00/0.61 max(cons(I2, l)) -> if(I2 > max(l), I2, max(l)) 0.00/0.61 max(nil) -> 0 0.00/0.61 member(n, cons(m, B0)) -> n = m || member(n, B0) 0.00/0.61 member(I3, nil) -> false 0.00/0.61 cond2(false, I4, B1) -> st(I4 + 1, B1) 0.00/0.61 cond2(true, I5, B2) -> nil 0.00/0.61 cond1(false, I6, B3) -> cond2(I6 > max(B3), I6, B3) 0.00/0.61 cond1(true, I7, B4) -> cons(I7, st(I7 + 1, B4)) 0.00/0.61 stNat(true, I8, B5) -> cond1(member(I8, B5), I8, B5) 0.00/0.61 st(I9, B6) -> stNat(I9 >= 0, I9, B6) 0.00/0.61 sort(B7) -> st(0, B7) 0.00/0.61 0.00/3.59 EOF