YES We show the termination of the TRS R: app(app(neq(),|0|()),|0|()) -> false() app(app(neq(),|0|()),app(s(),y)) -> true() app(app(neq(),app(s(),x)),|0|()) -> true() app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) app(app(filter(),f),nil()) -> nil() app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) nonzero() -> app(filter(),app(neq(),|0|())) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: app#(app(neq(),app(s(),x)),app(s(),y)) -> app#(app(neq(),x),y) p2: app#(app(neq(),app(s(),x)),app(s(),y)) -> app#(neq(),x) p3: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) p4: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(app(filtersub(),app(f,y)),f) p5: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(filtersub(),app(f,y)) p6: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(f,y) p7: app#(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app#(app(cons(),y),app(app(filter(),f),ys)) p8: app#(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) p9: app#(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app#(filter(),f) p10: app#(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) p11: app#(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app#(filter(),f) p12: nonzero#() -> app#(filter(),app(neq(),|0|())) p13: nonzero#() -> app#(neq(),|0|()) and R consists of: r1: app(app(neq(),|0|()),|0|()) -> false() r2: app(app(neq(),|0|()),app(s(),y)) -> true() r3: app(app(neq(),app(s(),x)),|0|()) -> true() r4: app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) r5: app(app(filter(),f),nil()) -> nil() r6: app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) r7: app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) r8: app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) r9: nonzero() -> app(filter(),app(neq(),|0|())) The estimated dependency graph contains the following SCCs: {p3, p6, p8, p10} {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(f,y) p2: app#(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) p3: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) p4: app#(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) and R consists of: r1: app(app(neq(),|0|()),|0|()) -> false() r2: app(app(neq(),|0|()),app(s(),y)) -> true() r3: app(app(neq(),app(s(),x)),|0|()) -> true() r4: app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) r5: app(app(filter(),f),nil()) -> nil() r6: app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) r7: app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) r8: app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) r9: nonzero() -> app(filter(),app(neq(),|0|())) 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^1 order: lexicographic order interpretations: app#_A(x1,x2) = x1 + 6 app_A(x1,x2) = x2 + 7 filter_A() = 16 cons_A() = 5 filtersub_A() = 6 false_A() = 2 true_A() = 4 neq_A() = 15 |0|_A() = 1 s_A() = 5 nil_A() = 17 precedence: app# = filter = cons = filtersub = true = neq = |0| = s = nil > app = false partial status: pi(app#) = [1] pi(app) = [] pi(filter) = [] pi(cons) = [] pi(filtersub) = [] pi(false) = [] pi(true) = [] pi(neq) = [] pi(|0|) = [] pi(s) = [] 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: app#(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) p2: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) p3: app#(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) and R consists of: r1: app(app(neq(),|0|()),|0|()) -> false() r2: app(app(neq(),|0|()),app(s(),y)) -> true() r3: app(app(neq(),app(s(),x)),|0|()) -> true() r4: app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) r5: app(app(filter(),f),nil()) -> nil() r6: app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) r7: app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) r8: app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) r9: nonzero() -> app(filter(),app(neq(),|0|())) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: app#(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) p2: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) p3: app#(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) and R consists of: r1: app(app(neq(),|0|()),|0|()) -> false() r2: app(app(neq(),|0|()),app(s(),y)) -> true() r3: app(app(neq(),app(s(),x)),|0|()) -> true() r4: app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) r5: app(app(filter(),f),nil()) -> nil() r6: app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) r7: app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) r8: app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) r9: nonzero() -> app(filter(),app(neq(),|0|())) 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^1 order: lexicographic order interpretations: app#_A(x1,x2) = x2 app_A(x1,x2) = x2 + 5 filtersub_A() = 2 false_A() = 4 cons_A() = 1 filter_A() = 15 true_A() = 7 neq_A() = 6 |0|_A() = 3 s_A() = 1 nil_A() = 16 precedence: app# = app > filtersub = false = cons = filter = true = neq = |0| = s = nil partial status: pi(app#) = [] pi(app) = [] pi(filtersub) = [] pi(false) = [] pi(cons) = [] pi(filter) = [] pi(true) = [] pi(neq) = [] pi(|0|) = [] pi(s) = [] 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: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) p2: app#(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) and R consists of: r1: app(app(neq(),|0|()),|0|()) -> false() r2: app(app(neq(),|0|()),app(s(),y)) -> true() r3: app(app(neq(),app(s(),x)),|0|()) -> true() r4: app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) r5: app(app(filter(),f),nil()) -> nil() r6: app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) r7: app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) r8: app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) r9: nonzero() -> app(filter(),app(neq(),|0|())) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) p2: app#(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app#(app(filter(),f),ys) and R consists of: r1: app(app(neq(),|0|()),|0|()) -> false() r2: app(app(neq(),|0|()),app(s(),y)) -> true() r3: app(app(neq(),app(s(),x)),|0|()) -> true() r4: app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) r5: app(app(filter(),f),nil()) -> nil() r6: app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) r7: app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) r8: app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) r9: nonzero() -> app(filter(),app(neq(),|0|())) 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^1 order: lexicographic order interpretations: app#_A(x1,x2) = x2 + 4 app_A(x1,x2) = x2 + 5 filter_A() = 14 cons_A() = 2 filtersub_A() = 3 true_A() = 1 neq_A() = 11 |0|_A() = 2 false_A() = 0 s_A() = 2 nil_A() = 15 precedence: app# = app = filter = cons = filtersub = true = neq = |0| = false = s = nil partial status: pi(app#) = [2] pi(app) = [2] pi(filter) = [] pi(cons) = [] pi(filtersub) = [] pi(true) = [] pi(neq) = [] pi(|0|) = [] pi(false) = [] pi(s) = [] 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: app#(app(filter(),f),app(app(cons(),y),ys)) -> app#(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) and R consists of: r1: app(app(neq(),|0|()),|0|()) -> false() r2: app(app(neq(),|0|()),app(s(),y)) -> true() r3: app(app(neq(),app(s(),x)),|0|()) -> true() r4: app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) r5: app(app(filter(),f),nil()) -> nil() r6: app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) r7: app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) r8: app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) r9: nonzero() -> app(filter(),app(neq(),|0|())) The estimated dependency graph contains the following SCCs: (no SCCs) -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: app#(app(neq(),app(s(),x)),app(s(),y)) -> app#(app(neq(),x),y) and R consists of: r1: app(app(neq(),|0|()),|0|()) -> false() r2: app(app(neq(),|0|()),app(s(),y)) -> true() r3: app(app(neq(),app(s(),x)),|0|()) -> true() r4: app(app(neq(),app(s(),x)),app(s(),y)) -> app(app(neq(),x),y) r5: app(app(filter(),f),nil()) -> nil() r6: app(app(filter(),f),app(app(cons(),y),ys)) -> app(app(app(filtersub(),app(f,y)),f),app(app(cons(),y),ys)) r7: app(app(app(filtersub(),true()),f),app(app(cons(),y),ys)) -> app(app(cons(),y),app(app(filter(),f),ys)) r8: app(app(app(filtersub(),false()),f),app(app(cons(),y),ys)) -> app(app(filter(),f),ys) r9: nonzero() -> app(filter(),app(neq(),|0|())) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^1 order: lexicographic order interpretations: app#_A(x1,x2) = x2 app_A(x1,x2) = x2 + 3 neq_A() = 1 s_A() = 2 precedence: app# = app > neq = s partial status: pi(app#) = [2] pi(app) = [2] pi(neq) = [] pi(s) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.