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: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: purge#_A(x1) = x1 add_A(x1,x2) = max{x1 + 3, x2 + 3} rm_A(x1,x2) = max{1, x2} eq_A(x1,x2) = max{0, x2 - 1} |0|_A = 5 true_A = 1 s_A(x1) = x1 + 5 false_A = 3 ifrm_A(x1,x2,x3) = max{x1 + 2, x3} nil_A = 0 2. max/plus interpretations on natural numbers: purge#_A(x1) = x1 + 1 add_A(x1,x2) = 0 rm_A(x1,x2) = 2 eq_A(x1,x2) = 1 |0|_A = 0 true_A = 0 s_A(x1) = x1 false_A = 0 ifrm_A(x1,x2,x3) = 1 nil_A = 0 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: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: ifrm#_A(x1,x2,x3) = max{5, x3 - 3} false_A = 1 add_A(x1,x2) = max{x1 + 6, x2 + 4} rm#_A(x1,x2) = x2 eq_A(x1,x2) = max{x1 + 4, x2} true_A = 1 |0|_A = 2 s_A(x1) = x1 + 2 2. max/plus interpretations on natural numbers: ifrm#_A(x1,x2,x3) = 1 false_A = 0 add_A(x1,x2) = 0 rm#_A(x1,x2) = 0 eq_A(x1,x2) = 1 true_A = 0 |0|_A = 0 s_A(x1) = x1 The next rules are strictly ordered: p1, p2, p3 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: 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: lexicographic combination of reduction pairs: 1. max/plus interpretations on natural numbers: eq#_A(x1,x2) = max{x1, x2} s_A(x1) = max{2, x1 + 1} 2. max/plus interpretations on natural numbers: eq#_A(x1,x2) = 0 s_A(x1) = 0 The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.