0.00/0.54 MAYBE 0.00/0.54 0.00/0.54 DP problem for innermost termination. 0.00/0.54 P = 0.00/0.54 sort#(cons(x, xs)) -> max#(cons(x, xs)) 0.00/0.54 sort#(cons(x, xs)) -> sort#(del(max(cons(x, xs)), cons(x, xs))) 0.00/0.54 sort#(cons(x, xs)) -> del#(max(cons(x, xs)), cons(x, xs)) 0.00/0.54 sort#(cons(x, xs)) -> max#(cons(x, xs)) 0.00/0.54 if2#(false, I0, y, B0) -> del#(I0, B0) 0.00/0.54 del#(I3, cons(I4, B2)) -> if2#(I3 = I4, I3, I4, B2) 0.00/0.54 if1#(false, I6, I7, B3) -> max#(cons(I7, B3)) 0.00/0.54 if1#(true, I8, I9, B4) -> max#(cons(I8, B4)) 0.00/0.54 max#(cons(I10, cons(I11, B5))) -> if1#(I10 >= I11, I10, I11, B5) 0.00/0.54 R = 0.00/0.54 sort(cons(x, xs)) -> cons(max(cons(x, xs)), sort(del(max(cons(x, xs)), cons(x, xs)))) 0.00/0.54 sort(nil) -> nil 0.00/0.54 if2(false, I0, y, B0) -> cons(y, del(I0, B0)) 0.00/0.54 if2(true, I1, I2, B1) -> B1 0.00/0.54 del(I3, cons(I4, B2)) -> if2(I3 = I4, I3, I4, B2) 0.00/0.54 del(I5, nil) -> nil 0.00/0.54 if1(false, I6, I7, B3) -> max(cons(I7, B3)) 0.00/0.54 if1(true, I8, I9, B4) -> max(cons(I8, B4)) 0.00/0.54 max(cons(I10, cons(I11, B5))) -> if1(I10 >= I11, I10, I11, B5) 0.00/0.54 max(cons(I12, nil)) -> I12 0.00/0.54 max(nil) -> 0 0.00/0.54 0.00/0.54 This problem is converted using chaining, where edges between chained DPs are removed. 0.00/0.54 0.00/0.54 DP problem for innermost termination. 0.00/0.54 P = 0.00/0.54 sort#(cons(x, xs)) -> max#(cons(x, xs)) 0.00/0.54 sort#(cons(x, xs)) -> sort#(del(max(cons(x, xs)), cons(x, xs))) 0.00/0.54 sort#(cons(x, xs)) -> del#(max(cons(x, xs)), cons(x, xs)) 0.00/0.54 sort#(cons(x, xs)) -> max#(cons(x, xs)) 0.00/0.54 if2#(false, I0, y, B0) -> del#(I0, B0) 0.00/0.54 del#(I3, cons(I4, B2)) -> if2#(I3 = I4, I3, I4, B2) 0.00/0.54 if1#(false, I6, I7, B3) -> max#(cons(I7, B3)) 0.00/0.54 if1#(true, I8, I9, B4) -> max#(cons(I8, B4)) 0.00/0.54 max#(cons(I10, cons(I11, B5))) -> if1#(I10 >= I11, I10, I11, B5) 0.00/0.54 max#(cons(I10, cons(I11, B5))) -> max#(cons(I11, B5)) [not(I10 >= I11)] 0.00/0.54 max#(cons(I10, cons(I11, B5))) -> max#(cons(I10, B5)) [I10 >= I11] 0.00/0.54 del#(I3, cons(I4, B2)) -> del#(I3, B2) [not(I3 = I4)] 0.00/0.54 R = 0.00/0.54 sort(cons(x, xs)) -> cons(max(cons(x, xs)), sort(del(max(cons(x, xs)), cons(x, xs)))) 0.00/0.54 sort(nil) -> nil 0.00/0.54 if2(false, I0, y, B0) -> cons(y, del(I0, B0)) 0.00/0.54 if2(true, I1, I2, B1) -> B1 0.00/0.54 del(I3, cons(I4, B2)) -> if2(I3 = I4, I3, I4, B2) 0.00/0.54 del(I5, nil) -> nil 0.00/0.54 if1(false, I6, I7, B3) -> max(cons(I7, B3)) 0.00/0.54 if1(true, I8, I9, B4) -> max(cons(I8, B4)) 0.00/0.54 max(cons(I10, cons(I11, B5))) -> if1(I10 >= I11, I10, I11, B5) 0.00/0.54 max(cons(I12, nil)) -> I12 0.00/0.54 max(nil) -> 0 0.00/0.54 0.00/0.54 The dependency graph for this problem is: 0.00/0.54 0 -> 10, 9, 8 0.00/0.54 1 -> 0, 1, 2, 3 0.00/0.54 2 -> 11, 5 0.00/0.54 3 -> 10, 9, 8 0.00/0.54 4 -> 11, 5 0.00/0.54 5 -> 0.00/0.54 6 -> 10, 9, 8 0.00/0.54 7 -> 10, 9, 8 0.00/0.54 8 -> 0.00/0.54 9 -> 10, 9, 8 0.00/0.54 10 -> 10, 8, 9 0.00/0.54 11 -> 11, 5 0.00/0.54 Where: 0.00/0.54 0) sort#(cons(x, xs)) -> max#(cons(x, xs)) 0.00/0.54 1) sort#(cons(x, xs)) -> sort#(del(max(cons(x, xs)), cons(x, xs))) 0.00/0.54 2) sort#(cons(x, xs)) -> del#(max(cons(x, xs)), cons(x, xs)) 0.00/0.54 3) sort#(cons(x, xs)) -> max#(cons(x, xs)) 0.00/0.54 4) if2#(false, I0, y, B0) -> del#(I0, B0) 0.00/0.54 5) del#(I3, cons(I4, B2)) -> if2#(I3 = I4, I3, I4, B2) 0.00/0.54 6) if1#(false, I6, I7, B3) -> max#(cons(I7, B3)) 0.00/0.54 7) if1#(true, I8, I9, B4) -> max#(cons(I8, B4)) 0.00/0.54 8) max#(cons(I10, cons(I11, B5))) -> if1#(I10 >= I11, I10, I11, B5) 0.00/0.54 9) max#(cons(I10, cons(I11, B5))) -> max#(cons(I11, B5)) [not(I10 >= I11)] 0.00/0.54 10) max#(cons(I10, cons(I11, B5))) -> max#(cons(I10, B5)) [I10 >= I11] 0.00/0.54 11) del#(I3, cons(I4, B2)) -> del#(I3, B2) [not(I3 = I4)] 0.00/0.54 0.00/0.54 We have the following SCCs. 0.00/0.54 { 1 } 0.00/0.54 { 9, 10 } 0.00/0.54 { 11 } 0.00/0.54 0.00/0.54 DP problem for innermost termination. 0.00/0.54 P = 0.00/0.54 del#(I3, cons(I4, B2)) -> del#(I3, B2) [not(I3 = I4)] 0.00/0.54 R = 0.00/0.54 sort(cons(x, xs)) -> cons(max(cons(x, xs)), sort(del(max(cons(x, xs)), cons(x, xs)))) 0.00/0.54 sort(nil) -> nil 0.00/0.54 if2(false, I0, y, B0) -> cons(y, del(I0, B0)) 0.00/0.54 if2(true, I1, I2, B1) -> B1 0.00/0.54 del(I3, cons(I4, B2)) -> if2(I3 = I4, I3, I4, B2) 0.00/0.54 del(I5, nil) -> nil 0.00/0.54 if1(false, I6, I7, B3) -> max(cons(I7, B3)) 0.00/0.54 if1(true, I8, I9, B4) -> max(cons(I8, B4)) 0.00/0.54 max(cons(I10, cons(I11, B5))) -> if1(I10 >= I11, I10, I11, B5) 0.00/0.54 max(cons(I12, nil)) -> I12 0.00/0.54 max(nil) -> 0 0.00/0.54 0.00/0.54 We use the subterm criterion with the projection function NU: 0.00/0.54 NU[del#(x0,x1)] = x1 0.00/0.54 0.00/0.54 This gives the following inequalities: 0.00/0.54 cons(I4, B2) |> B2 0.00/0.54 0.00/0.54 All dependency pairs are strictly oriented, so the entire dependency pair problem may be removed. 0.00/0.54 0.00/0.54 DP problem for innermost termination. 0.00/0.54 P = 0.00/0.54 max#(cons(I10, cons(I11, B5))) -> max#(cons(I11, B5)) [not(I10 >= I11)] 0.00/0.54 max#(cons(I10, cons(I11, B5))) -> max#(cons(I10, B5)) [I10 >= I11] 0.00/0.54 R = 0.00/0.54 sort(cons(x, xs)) -> cons(max(cons(x, xs)), sort(del(max(cons(x, xs)), cons(x, xs)))) 0.00/0.54 sort(nil) -> nil 0.00/0.54 if2(false, I0, y, B0) -> cons(y, del(I0, B0)) 0.00/0.54 if2(true, I1, I2, B1) -> B1 0.00/0.54 del(I3, cons(I4, B2)) -> if2(I3 = I4, I3, I4, B2) 0.00/0.54 del(I5, nil) -> nil 0.00/0.54 if1(false, I6, I7, B3) -> max(cons(I7, B3)) 0.00/0.54 if1(true, I8, I9, B4) -> max(cons(I8, B4)) 0.00/0.54 max(cons(I10, cons(I11, B5))) -> if1(I10 >= I11, I10, I11, B5) 0.00/0.54 max(cons(I12, nil)) -> I12 0.00/0.54 max(nil) -> 0 0.00/0.54 0.00/3.52 EOF