YES We show the termination of the TRS R: and(true(),X) -> activate(X) and(false(),Y) -> false() if(true(),X,Y) -> activate(X) if(false(),X,Y) -> activate(Y) add(|0|(),X) -> activate(X) add(s(X),Y) -> s(n__add(activate(X),activate(Y))) first(|0|(),X) -> nil() first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) from(X) -> cons(activate(X),n__from(n__s(activate(X)))) add(X1,X2) -> n__add(X1,X2) first(X1,X2) -> n__first(X1,X2) from(X) -> n__from(X) s(X) -> n__s(X) activate(n__add(X1,X2)) -> add(X1,X2) activate(n__first(X1,X2)) -> first(X1,X2) activate(n__from(X)) -> from(X) activate(n__s(X)) -> s(X) activate(X) -> X -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: and#(true(),X) -> activate#(X) p2: if#(true(),X,Y) -> activate#(X) p3: if#(false(),X,Y) -> activate#(Y) p4: add#(|0|(),X) -> activate#(X) p5: add#(s(X),Y) -> s#(n__add(activate(X),activate(Y))) p6: add#(s(X),Y) -> activate#(X) p7: add#(s(X),Y) -> activate#(Y) p8: first#(s(X),cons(Y,Z)) -> activate#(Y) p9: first#(s(X),cons(Y,Z)) -> activate#(X) p10: first#(s(X),cons(Y,Z)) -> activate#(Z) p11: from#(X) -> activate#(X) p12: activate#(n__add(X1,X2)) -> add#(X1,X2) p13: activate#(n__first(X1,X2)) -> first#(X1,X2) p14: activate#(n__from(X)) -> from#(X) p15: activate#(n__s(X)) -> s#(X) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> X The estimated dependency graph contains the following SCCs: {p4, p6, p7, p8, p9, p10, p11, p12, p13, p14} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__add(X1,X2)) -> add#(X1,X2) p2: add#(s(X),Y) -> activate#(Y) p3: activate#(n__from(X)) -> from#(X) p4: from#(X) -> activate#(X) p5: activate#(n__first(X1,X2)) -> first#(X1,X2) p6: first#(s(X),cons(Y,Z)) -> activate#(Z) p7: first#(s(X),cons(Y,Z)) -> activate#(X) p8: first#(s(X),cons(Y,Z)) -> activate#(Y) p9: add#(s(X),Y) -> activate#(X) p10: add#(|0|(),X) -> activate#(X) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> 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: lexicographic order interpretations: activate#_A(x1) = ((0,0),(1,0)) x1 + (3,2) n__add_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (4,1) add#_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (3,2) s_A(x1) = x1 + (4,0) n__from_A(x1) = ((1,0),(0,0)) x1 + (2,4) from#_A(x1) = ((0,0),(1,0)) x1 + (3,3) n__first_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (4,1) first#_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (3,2) cons_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (4,1) |0|_A() = (4,0) precedence: n__add = s = n__from = n__first = |0| > activate# = add# = from# = first# = cons partial status: pi(activate#) = [] pi(n__add) = [] pi(add#) = [] pi(s) = [] pi(n__from) = [] pi(from#) = [] pi(n__first) = [] pi(first#) = [] pi(cons) = [] pi(|0|) = [] 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: activate#(n__add(X1,X2)) -> add#(X1,X2) p2: activate#(n__from(X)) -> from#(X) p3: from#(X) -> activate#(X) p4: activate#(n__first(X1,X2)) -> first#(X1,X2) p5: first#(s(X),cons(Y,Z)) -> activate#(Z) p6: first#(s(X),cons(Y,Z)) -> activate#(X) p7: first#(s(X),cons(Y,Z)) -> activate#(Y) p8: add#(s(X),Y) -> activate#(X) p9: add#(|0|(),X) -> activate#(X) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> X The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__add(X1,X2)) -> add#(X1,X2) p2: add#(|0|(),X) -> activate#(X) p3: activate#(n__first(X1,X2)) -> first#(X1,X2) p4: first#(s(X),cons(Y,Z)) -> activate#(Y) p5: activate#(n__from(X)) -> from#(X) p6: from#(X) -> activate#(X) p7: first#(s(X),cons(Y,Z)) -> activate#(X) p8: first#(s(X),cons(Y,Z)) -> activate#(Z) p9: add#(s(X),Y) -> activate#(X) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> 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: lexicographic order interpretations: activate#_A(x1) = ((1,0),(1,0)) x1 + (2,5) n__add_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (3,1) add#_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (2,2) |0|_A() = (1,1) n__first_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (1,1) first#_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (2,2) s_A(x1) = ((1,0),(1,1)) x1 + (3,6) cons_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (3,6) n__from_A(x1) = ((1,0),(0,0)) x1 + (4,7) from#_A(x1) = ((1,0),(1,0)) x1 + (3,6) precedence: n__add > add# = |0| = n__first = s > activate# = first# = cons = n__from = from# partial status: pi(activate#) = [] pi(n__add) = [] pi(add#) = [] pi(|0|) = [] pi(n__first) = [] pi(first#) = [] pi(s) = [1] pi(cons) = [] pi(n__from) = [] pi(from#) = [] 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: add#(|0|(),X) -> activate#(X) p2: activate#(n__first(X1,X2)) -> first#(X1,X2) p3: first#(s(X),cons(Y,Z)) -> activate#(Y) p4: activate#(n__from(X)) -> from#(X) p5: from#(X) -> activate#(X) p6: first#(s(X),cons(Y,Z)) -> activate#(X) p7: first#(s(X),cons(Y,Z)) -> activate#(Z) p8: add#(s(X),Y) -> activate#(X) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> X The estimated dependency graph contains the following SCCs: {p2, p3, p4, p5, p6, p7} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__first(X1,X2)) -> first#(X1,X2) p2: first#(s(X),cons(Y,Z)) -> activate#(Z) p3: activate#(n__from(X)) -> from#(X) p4: from#(X) -> activate#(X) p5: first#(s(X),cons(Y,Z)) -> activate#(X) p6: first#(s(X),cons(Y,Z)) -> activate#(Y) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> 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: lexicographic order interpretations: activate#_A(x1) = ((0,0),(1,0)) x1 + (2,2) n__first_A(x1,x2) = x1 + x2 + (0,3) first#_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (2,2) s_A(x1) = ((1,0),(1,0)) x1 + (0,1) cons_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,1) n__from_A(x1) = x1 + (1,1) from#_A(x1) = ((0,0),(1,0)) x1 + (2,2) precedence: n__first > s > activate# = first# = from# > cons > n__from partial status: pi(activate#) = [] pi(n__first) = [2] pi(first#) = [] pi(s) = [] pi(cons) = [] pi(n__from) = [1] pi(from#) = [] 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: activate#(n__first(X1,X2)) -> first#(X1,X2) p2: first#(s(X),cons(Y,Z)) -> activate#(Z) p3: from#(X) -> activate#(X) p4: first#(s(X),cons(Y,Z)) -> activate#(X) p5: first#(s(X),cons(Y,Z)) -> activate#(Y) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> X The estimated dependency graph contains the following SCCs: {p1, p2, p4, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__first(X1,X2)) -> first#(X1,X2) p2: first#(s(X),cons(Y,Z)) -> activate#(Y) p3: first#(s(X),cons(Y,Z)) -> activate#(X) p4: first#(s(X),cons(Y,Z)) -> activate#(Z) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> 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: lexicographic order interpretations: activate#_A(x1) = ((1,0),(1,0)) x1 + (2,2) n__first_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,1) first#_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 s_A(x1) = ((1,0),(0,0)) x1 + (3,1) cons_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (1,1) precedence: n__first > activate# = first# = s = cons partial status: pi(activate#) = [] pi(n__first) = [2] pi(first#) = [] pi(s) = [] pi(cons) = [1] 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: activate#(n__first(X1,X2)) -> first#(X1,X2) p2: first#(s(X),cons(Y,Z)) -> activate#(X) p3: first#(s(X),cons(Y,Z)) -> activate#(Z) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> X 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: activate#(n__first(X1,X2)) -> first#(X1,X2) p2: first#(s(X),cons(Y,Z)) -> activate#(Z) p3: first#(s(X),cons(Y,Z)) -> activate#(X) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> 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: lexicographic order interpretations: activate#_A(x1) = ((0,0),(1,0)) x1 + (1,1) n__first_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (2,1) first#_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (1,2) s_A(x1) = x1 + (2,2) cons_A(x1,x2) = x1 + x2 + (2,2) precedence: n__first = s > activate# = first# = cons partial status: pi(activate#) = [] pi(n__first) = [] pi(first#) = [] pi(s) = [1] pi(cons) = [1] 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: activate#(n__first(X1,X2)) -> first#(X1,X2) p2: first#(s(X),cons(Y,Z)) -> activate#(X) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> 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: activate#(n__first(X1,X2)) -> first#(X1,X2) p2: first#(s(X),cons(Y,Z)) -> activate#(X) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> 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: lexicographic order interpretations: activate#_A(x1) = ((0,0),(1,0)) x1 + (2,2) n__first_A(x1,x2) = ((1,0),(0,0)) x1 + (1,1) first#_A(x1,x2) = ((0,0),(1,0)) x1 + (2,2) s_A(x1) = ((1,0),(0,0)) x1 + (3,3) cons_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (3,1) precedence: first# > activate# = s = cons > n__first partial status: pi(activate#) = [] pi(n__first) = [] pi(first#) = [] pi(s) = [] pi(cons) = [] 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: activate#(n__first(X1,X2)) -> first#(X1,X2) and R consists of: r1: and(true(),X) -> activate(X) r2: and(false(),Y) -> false() r3: if(true(),X,Y) -> activate(X) r4: if(false(),X,Y) -> activate(Y) r5: add(|0|(),X) -> activate(X) r6: add(s(X),Y) -> s(n__add(activate(X),activate(Y))) r7: first(|0|(),X) -> nil() r8: first(s(X),cons(Y,Z)) -> cons(activate(Y),n__first(activate(X),activate(Z))) r9: from(X) -> cons(activate(X),n__from(n__s(activate(X)))) r10: add(X1,X2) -> n__add(X1,X2) r11: first(X1,X2) -> n__first(X1,X2) r12: from(X) -> n__from(X) r13: s(X) -> n__s(X) r14: activate(n__add(X1,X2)) -> add(X1,X2) r15: activate(n__first(X1,X2)) -> first(X1,X2) r16: activate(n__from(X)) -> from(X) r17: activate(n__s(X)) -> s(X) r18: activate(X) -> X The estimated dependency graph contains the following SCCs: (no SCCs)