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: max/plus interpretations on natural numbers: app#_A(x1,x2) = max{1, x1 - 31} app_A(x1,x2) = x2 + 86 filter_A = 43 cons_A = 42 filtersub_A = 19 false_A = 32 true_A = 41 neq_A = 33 |0|_A = 31 s_A = 34 nil_A = 85 precedence: app# = app = filter = cons = filtersub = false = true = neq = |0| = s = nil partial status: pi(app#) = [] 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: max/plus interpretations on natural numbers: app#_A(x1,x2) = x2 + 38 app_A(x1,x2) = x2 + 72 filtersub_A = 115 false_A = 40 cons_A = 120 filter_A = 89 true_A = 121 neq_A = 123 |0|_A = 50 s_A = 82 nil_A = 90 precedence: app# = app = true = neq = |0| = s > nil > filtersub = false = cons = filter 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: max/plus interpretations on natural numbers: app#_A(x1,x2) = max{x1 + 51, x2 + 58} app_A(x1,x2) = x2 + 50 filter_A = 95 cons_A = 66 filtersub_A = 87 true_A = 49 neq_A = 69 |0|_A = 69 false_A = 68 s_A = 42 nil_A = 96 precedence: app# = app = filter = cons = filtersub = true = neq = |0| = false = s = nil partial status: pi(app#) = [2] pi(app) = [] 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: max/plus interpretations on natural numbers: app#_A(x1,x2) = max{x1 - 9, x2 + 4} app_A(x1,x2) = max{x1 + 2, x2 + 4} neq_A = 2 s_A = 1 precedence: app# = app = neq = s partial status: pi(app#) = [2] pi(app) = [] pi(neq) = [] pi(s) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.