YES We show the termination of the TRS R: eq(|0|(),|0|()) -> true() eq(|0|(),s(Y)) -> false() eq(s(X),|0|()) -> false() eq(s(X),s(Y)) -> eq(X,Y) le(|0|(),Y) -> true() le(s(X),|0|()) -> false() le(s(X),s(Y)) -> le(X,Y) min(cons(|0|(),nil())) -> |0|() min(cons(s(N),nil())) -> s(N) min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) replace(N,M,nil()) -> nil() replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) selsort(nil()) -> nil() selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: eq#(s(X),s(Y)) -> eq#(X,Y) p2: le#(s(X),s(Y)) -> le#(X,Y) p3: min#(cons(N,cons(M,L))) -> ifmin#(le(N,M),cons(N,cons(M,L))) p4: min#(cons(N,cons(M,L))) -> le#(N,M) p5: ifmin#(true(),cons(N,cons(M,L))) -> min#(cons(N,L)) p6: ifmin#(false(),cons(N,cons(M,L))) -> min#(cons(M,L)) p7: replace#(N,M,cons(K,L)) -> ifrepl#(eq(N,K),N,M,cons(K,L)) p8: replace#(N,M,cons(K,L)) -> eq#(N,K) p9: ifrepl#(false(),N,M,cons(K,L)) -> replace#(N,M,L) p10: selsort#(cons(N,L)) -> ifselsort#(eq(N,min(cons(N,L))),cons(N,L)) p11: selsort#(cons(N,L)) -> eq#(N,min(cons(N,L))) p12: selsort#(cons(N,L)) -> min#(cons(N,L)) p13: ifselsort#(true(),cons(N,L)) -> selsort#(L) p14: ifselsort#(false(),cons(N,L)) -> min#(cons(N,L)) p15: ifselsort#(false(),cons(N,L)) -> selsort#(replace(min(cons(N,L)),N,L)) p16: ifselsort#(false(),cons(N,L)) -> replace#(min(cons(N,L)),N,L) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The estimated dependency graph contains the following SCCs: {p10, p13, p15} {p7, p9} {p1} {p3, p5, p6} {p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ifselsort#(false(),cons(N,L)) -> selsort#(replace(min(cons(N,L)),N,L)) p2: selsort#(cons(N,L)) -> ifselsort#(eq(N,min(cons(N,L))),cons(N,L)) p3: ifselsort#(true(),cons(N,L)) -> selsort#(L) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: ifselsort#_A(x1,x2) = ((1,0),(0,0)) x2 + (4,15) false_A() = (0,4) cons_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (7,0) selsort#_A(x1) = x1 + (5,7) replace_A(x1,x2,x3) = ((1,0),(1,1)) x2 + x3 + (5,7) min_A(x1) = x1 + (6,0) eq_A(x1,x2) = x1 + x2 + (1,0) true_A() = (0,6) le_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,1) |0|_A() = (0,5) s_A(x1) = ((1,0),(1,1)) x1 + (1,2) ifmin_A(x1,x2) = ((1,0),(0,0)) x2 + (1,0) ifrepl_A(x1,x2,x3,x4) = ((1,0),(1,1)) x3 + x4 + (5,6) nil_A() = (2,1) precedence: ifselsort# = selsort# = replace = min = |0| = ifmin = ifrepl > cons > le = s > eq = true > false > nil partial status: pi(ifselsort#) = [] pi(false) = [] pi(cons) = [1] pi(selsort#) = [] pi(replace) = [3] pi(min) = [] pi(eq) = [1] pi(true) = [] pi(le) = [] pi(|0|) = [] pi(s) = [] pi(ifmin) = [] pi(ifrepl) = [4] pi(nil) = [] The next rules are strictly ordered: p1 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: selsort#(cons(N,L)) -> ifselsort#(eq(N,min(cons(N,L))),cons(N,L)) p2: ifselsort#(true(),cons(N,L)) -> selsort#(L) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: selsort#(cons(N,L)) -> ifselsort#(eq(N,min(cons(N,L))),cons(N,L)) p2: ifselsort#(true(),cons(N,L)) -> selsort#(L) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: selsort#_A(x1) = x1 + (3,4) cons_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (5,6) ifselsort#_A(x1,x2) = ((1,0),(0,0)) x2 + (0,5) eq_A(x1,x2) = (6,11) min_A(x1) = x1 + (4,5) true_A() = (1,3) le_A(x1,x2) = (2,2) |0|_A() = (0,0) s_A(x1) = (0,0) false_A() = (1,1) ifmin_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) nil_A() = (1,1) precedence: selsort# = cons = ifselsort# = eq = min = true = le = |0| = s = false = ifmin = nil partial status: pi(selsort#) = [] pi(cons) = [] pi(ifselsort#) = [] pi(eq) = [] pi(min) = [1] pi(true) = [] pi(le) = [] pi(|0|) = [] pi(s) = [] pi(false) = [] pi(ifmin) = [2] pi(nil) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: selsort#(cons(N,L)) -> ifselsort#(eq(N,min(cons(N,L))),cons(N,L)) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The estimated dependency graph contains the following SCCs: (no SCCs) -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ifrepl#(false(),N,M,cons(K,L)) -> replace#(N,M,L) p2: replace#(N,M,cons(K,L)) -> ifrepl#(eq(N,K),N,M,cons(K,L)) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The set of usable rules consists of r1, r2, r3, r4 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: ifrepl#_A(x1,x2,x3,x4) = x4 + (1,1) false_A() = (1,4) cons_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (3,6) replace#_A(x1,x2,x3) = ((1,0),(1,1)) x3 + (2,5) eq_A(x1,x2) = ((1,0),(1,0)) x2 + (2,1) |0|_A() = (3,5) true_A() = (5,4) s_A(x1) = x1 + (3,5) precedence: cons > false > replace# > ifrepl# = |0| > eq = true > s partial status: pi(ifrepl#) = [4] pi(false) = [] pi(cons) = [2] pi(replace#) = [] pi(eq) = [] pi(|0|) = [] pi(true) = [] pi(s) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ifrepl#(false(),N,M,cons(K,L)) -> replace#(N,M,L) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The estimated dependency graph contains the following SCCs: (no SCCs) -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: eq#(s(X),s(Y)) -> eq#(X,Y) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: eq#_A(x1,x2) = x1 s_A(x1) = x1 + (1,1) precedence: s > eq# partial status: pi(eq#) = [] pi(s) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ifmin#(false(),cons(N,cons(M,L))) -> min#(cons(M,L)) p2: min#(cons(N,cons(M,L))) -> ifmin#(le(N,M),cons(N,cons(M,L))) p3: ifmin#(true(),cons(N,cons(M,L))) -> min#(cons(N,L)) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The set of usable rules consists of r5, r6, r7 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: ifmin#_A(x1,x2) = x2 + (4,1) false_A() = (3,2) cons_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (0,3) min#_A(x1) = x1 + (4,2) le_A(x1,x2) = ((1,0),(0,0)) x1 + (1,9) true_A() = (1,6) |0|_A() = (2,1) s_A(x1) = ((1,0),(0,0)) x1 + (4,10) precedence: false = cons = le > ifmin# > min# = s > true = |0| partial status: pi(ifmin#) = [] pi(false) = [] pi(cons) = [] pi(min#) = [] pi(le) = [] pi(true) = [] pi(|0|) = [] pi(s) = [] The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ifmin#(false(),cons(N,cons(M,L))) -> min#(cons(M,L)) p2: min#(cons(N,cons(M,L))) -> ifmin#(le(N,M),cons(N,cons(M,L))) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: ifmin#(false(),cons(N,cons(M,L))) -> min#(cons(M,L)) p2: min#(cons(N,cons(M,L))) -> ifmin#(le(N,M),cons(N,cons(M,L))) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The set of usable rules consists of r5, r6, r7 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: ifmin#_A(x1,x2) = x2 + (1,0) false_A() = (0,0) cons_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (3,1) min#_A(x1) = ((1,0),(1,0)) x1 + (2,0) le_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + (2,0) |0|_A() = (2,2) true_A() = (1,1) s_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: min# = le = s > |0| = true > cons > ifmin# = false partial status: pi(ifmin#) = [2] pi(false) = [] pi(cons) = [] pi(min#) = [] pi(le) = [] pi(|0|) = [] pi(true) = [] pi(s) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: ifmin#(false(),cons(N,cons(M,L))) -> min#(cons(M,L)) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The estimated dependency graph contains the following SCCs: (no SCCs) -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: le#(s(X),s(Y)) -> le#(X,Y) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(Y)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: le(|0|(),Y) -> true() r6: le(s(X),|0|()) -> false() r7: le(s(X),s(Y)) -> le(X,Y) r8: min(cons(|0|(),nil())) -> |0|() r9: min(cons(s(N),nil())) -> s(N) r10: min(cons(N,cons(M,L))) -> ifmin(le(N,M),cons(N,cons(M,L))) r11: ifmin(true(),cons(N,cons(M,L))) -> min(cons(N,L)) r12: ifmin(false(),cons(N,cons(M,L))) -> min(cons(M,L)) r13: replace(N,M,nil()) -> nil() r14: replace(N,M,cons(K,L)) -> ifrepl(eq(N,K),N,M,cons(K,L)) r15: ifrepl(true(),N,M,cons(K,L)) -> cons(M,L) r16: ifrepl(false(),N,M,cons(K,L)) -> cons(K,replace(N,M,L)) r17: selsort(nil()) -> nil() r18: selsort(cons(N,L)) -> ifselsort(eq(N,min(cons(N,L))),cons(N,L)) r19: ifselsort(true(),cons(N,L)) -> cons(N,selsort(L)) r20: ifselsort(false(),cons(N,L)) -> cons(min(cons(N,L)),selsort(replace(min(cons(N,L)),N,L))) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: le#_A(x1,x2) = x1 s_A(x1) = x1 + (1,1) precedence: s > le# partial status: pi(le#) = [] pi(s) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.