YES We show the termination of the TRS R: eq(|0|(),|0|()) -> true() eq(|0|(),s(X)) -> false() eq(s(X),|0|()) -> false() eq(s(X),s(Y)) -> eq(X,Y) rm(N,nil()) -> nil() rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X)) ifrm(true(),N,add(M,X)) -> rm(N,X) ifrm(false(),N,add(M,X)) -> add(M,rm(N,X)) purge(nil()) -> nil() purge(add(N,X)) -> add(N,purge(rm(N,X))) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: eq#(s(X),s(Y)) -> eq#(X,Y) p2: rm#(N,add(M,X)) -> ifrm#(eq(N,M),N,add(M,X)) p3: rm#(N,add(M,X)) -> eq#(N,M) p4: ifrm#(true(),N,add(M,X)) -> rm#(N,X) p5: ifrm#(false(),N,add(M,X)) -> rm#(N,X) p6: purge#(add(N,X)) -> purge#(rm(N,X)) p7: purge#(add(N,X)) -> rm#(N,X) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(X)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: rm(N,nil()) -> nil() r6: rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X)) r7: ifrm(true(),N,add(M,X)) -> rm(N,X) r8: ifrm(false(),N,add(M,X)) -> add(M,rm(N,X)) r9: purge(nil()) -> nil() r10: purge(add(N,X)) -> add(N,purge(rm(N,X))) The estimated dependency graph contains the following SCCs: {p6} {p2, p4, p5} {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: purge#(add(N,X)) -> purge#(rm(N,X)) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(X)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: rm(N,nil()) -> nil() r6: rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X)) r7: ifrm(true(),N,add(M,X)) -> rm(N,X) r8: ifrm(false(),N,add(M,X)) -> add(M,rm(N,X)) r9: purge(nil()) -> nil() r10: purge(add(N,X)) -> add(N,purge(rm(N,X))) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: purge#_A(x1) = x1 + (1,0) add_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,1),(1,1)) x2 + (4,4) rm_A(x1,x2) = ((1,1),(1,1)) x2 + (2,2) eq_A(x1,x2) = ((0,1),(0,1)) x1 + ((0,0),(1,0)) x2 + (11,0) |0|_A() = (2,1) true_A() = (1,1) s_A(x1) = x1 + (2,1) false_A() = (1,0) ifrm_A(x1,x2,x3) = ((1,1),(1,1)) x3 + (1,0) nil_A() = (1,1) precedence: purge# > add = rm = s = false = ifrm > nil > eq > true > |0| partial status: pi(purge#) = [1] pi(add) = [] pi(rm) = [] pi(eq) = [] pi(|0|) = [] pi(true) = [] pi(s) = [1] pi(false) = [] pi(ifrm) = [] pi(nil) = [] 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: ifrm#(false(),N,add(M,X)) -> rm#(N,X) p2: rm#(N,add(M,X)) -> ifrm#(eq(N,M),N,add(M,X)) p3: ifrm#(true(),N,add(M,X)) -> rm#(N,X) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(X)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: rm(N,nil()) -> nil() r6: rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X)) r7: ifrm(true(),N,add(M,X)) -> rm(N,X) r8: ifrm(false(),N,add(M,X)) -> add(M,rm(N,X)) r9: purge(nil()) -> nil() r10: purge(add(N,X)) -> add(N,purge(rm(N,X))) 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: standard order interpretations: ifrm#_A(x1,x2,x3) = ((1,1),(0,0)) x3 + (1,3) false_A() = (3,2) add_A(x1,x2) = ((1,1),(0,0)) x1 + ((1,1),(0,1)) x2 + (5,4) rm#_A(x1,x2) = ((1,1),(0,0)) x2 + (4,3) eq_A(x1,x2) = (14,5) true_A() = (1,2) |0|_A() = (2,1) s_A(x1) = (15,5) precedence: s > eq = |0| > ifrm# = rm# > add = true > false partial status: pi(ifrm#) = [] pi(false) = [] pi(add) = [2] pi(rm#) = [] pi(eq) = [] pi(true) = [] pi(|0|) = [] pi(s) = [] 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: rm#(N,add(M,X)) -> ifrm#(eq(N,M),N,add(M,X)) p2: ifrm#(true(),N,add(M,X)) -> rm#(N,X) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(X)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: rm(N,nil()) -> nil() r6: rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X)) r7: ifrm(true(),N,add(M,X)) -> rm(N,X) r8: ifrm(false(),N,add(M,X)) -> add(M,rm(N,X)) r9: purge(nil()) -> nil() r10: purge(add(N,X)) -> add(N,purge(rm(N,X))) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: rm#(N,add(M,X)) -> ifrm#(eq(N,M),N,add(M,X)) p2: ifrm#(true(),N,add(M,X)) -> rm#(N,X) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(X)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: rm(N,nil()) -> nil() r6: rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X)) r7: ifrm(true(),N,add(M,X)) -> rm(N,X) r8: ifrm(false(),N,add(M,X)) -> add(M,rm(N,X)) r9: purge(nil()) -> nil() r10: purge(add(N,X)) -> add(N,purge(rm(N,X))) 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: standard order interpretations: rm#_A(x1,x2) = ((0,1),(0,0)) x2 + (3,2) add_A(x1,x2) = ((1,1),(0,1)) x2 + (5,3) ifrm#_A(x1,x2,x3) = ((0,1),(0,0)) x3 + (1,2) eq_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (7,4) true_A() = (1,1) |0|_A() = (3,2) s_A(x1) = ((1,0),(0,0)) x1 + (1,1) false_A() = (2,2) precedence: true > eq > ifrm# = |0| > s = false > rm# = add partial status: pi(rm#) = [] pi(add) = [] pi(ifrm#) = [] pi(eq) = [] pi(true) = [] pi(|0|) = [] pi(s) = [] pi(false) = [] 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: rm#(N,add(M,X)) -> ifrm#(eq(N,M),N,add(M,X)) and R consists of: r1: eq(|0|(),|0|()) -> true() r2: eq(|0|(),s(X)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: rm(N,nil()) -> nil() r6: rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X)) r7: ifrm(true(),N,add(M,X)) -> rm(N,X) r8: ifrm(false(),N,add(M,X)) -> add(M,rm(N,X)) r9: purge(nil()) -> nil() r10: purge(add(N,X)) -> add(N,purge(rm(N,X))) 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(X)) -> false() r3: eq(s(X),|0|()) -> false() r4: eq(s(X),s(Y)) -> eq(X,Y) r5: rm(N,nil()) -> nil() r6: rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X)) r7: ifrm(true(),N,add(M,X)) -> rm(N,X) r8: ifrm(false(),N,add(M,X)) -> add(M,rm(N,X)) r9: purge(nil()) -> nil() r10: purge(add(N,X)) -> add(N,purge(rm(N,X))) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: eq#_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,1),(0,0)) x2 + (2,2) s_A(x1) = ((0,0),(0,1)) x1 + (1,1) precedence: eq# = s partial status: pi(eq#) = [] pi(s) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.