YES We show the termination of the TRS R: U11(tt(),N) -> activate(N) U21(tt(),M,N) -> s(plus(activate(N),activate(M))) and(tt(),X) -> activate(X) isNat(n__0()) -> tt() isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2))) isNat(n__s(V1)) -> isNat(activate(V1)) plus(N,|0|()) -> U11(isNat(N),N) plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N) |0|() -> n__0() plus(X1,X2) -> n__plus(X1,X2) isNat(X) -> n__isNat(X) s(X) -> n__s(X) activate(n__0()) -> |0|() activate(n__plus(X1,X2)) -> plus(X1,X2) activate(n__isNat(X)) -> isNat(X) activate(n__s(X)) -> s(X) activate(X) -> X -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U11#(tt(),N) -> activate#(N) p2: U21#(tt(),M,N) -> s#(plus(activate(N),activate(M))) p3: U21#(tt(),M,N) -> plus#(activate(N),activate(M)) p4: U21#(tt(),M,N) -> activate#(N) p5: U21#(tt(),M,N) -> activate#(M) p6: and#(tt(),X) -> activate#(X) p7: isNat#(n__plus(V1,V2)) -> and#(isNat(activate(V1)),n__isNat(activate(V2))) p8: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1)) p9: isNat#(n__plus(V1,V2)) -> activate#(V1) p10: isNat#(n__plus(V1,V2)) -> activate#(V2) p11: isNat#(n__s(V1)) -> isNat#(activate(V1)) p12: isNat#(n__s(V1)) -> activate#(V1) p13: plus#(N,|0|()) -> U11#(isNat(N),N) p14: plus#(N,|0|()) -> isNat#(N) p15: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N) p16: plus#(N,s(M)) -> and#(isNat(M),n__isNat(N)) p17: plus#(N,s(M)) -> isNat#(M) p18: activate#(n__0()) -> |0|#() p19: activate#(n__plus(X1,X2)) -> plus#(X1,X2) p20: activate#(n__isNat(X)) -> isNat#(X) p21: activate#(n__s(X)) -> s#(X) and R consists of: r1: U11(tt(),N) -> activate(N) r2: U21(tt(),M,N) -> s(plus(activate(N),activate(M))) r3: and(tt(),X) -> activate(X) r4: isNat(n__0()) -> tt() r5: isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2))) r6: isNat(n__s(V1)) -> isNat(activate(V1)) r7: plus(N,|0|()) -> U11(isNat(N),N) r8: plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N) r9: |0|() -> n__0() r10: plus(X1,X2) -> n__plus(X1,X2) r11: isNat(X) -> n__isNat(X) r12: s(X) -> n__s(X) r13: activate(n__0()) -> |0|() r14: activate(n__plus(X1,X2)) -> plus(X1,X2) r15: activate(n__isNat(X)) -> isNat(X) r16: activate(n__s(X)) -> s(X) r17: activate(X) -> X The estimated dependency graph contains the following SCCs: {p1, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p19, p20} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U11#(tt(),N) -> activate#(N) p2: activate#(n__isNat(X)) -> isNat#(X) p3: isNat#(n__s(V1)) -> activate#(V1) p4: activate#(n__plus(X1,X2)) -> plus#(X1,X2) p5: plus#(N,s(M)) -> isNat#(M) p6: isNat#(n__s(V1)) -> isNat#(activate(V1)) p7: isNat#(n__plus(V1,V2)) -> activate#(V2) p8: isNat#(n__plus(V1,V2)) -> activate#(V1) p9: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1)) p10: isNat#(n__plus(V1,V2)) -> and#(isNat(activate(V1)),n__isNat(activate(V2))) p11: and#(tt(),X) -> activate#(X) p12: plus#(N,s(M)) -> and#(isNat(M),n__isNat(N)) p13: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N) p14: U21#(tt(),M,N) -> activate#(M) p15: U21#(tt(),M,N) -> activate#(N) p16: U21#(tt(),M,N) -> plus#(activate(N),activate(M)) p17: plus#(N,|0|()) -> isNat#(N) p18: plus#(N,|0|()) -> U11#(isNat(N),N) and R consists of: r1: U11(tt(),N) -> activate(N) r2: U21(tt(),M,N) -> s(plus(activate(N),activate(M))) r3: and(tt(),X) -> activate(X) r4: isNat(n__0()) -> tt() r5: isNat(n__plus(V1,V2)) -> and(isNat(activate(V1)),n__isNat(activate(V2))) r6: isNat(n__s(V1)) -> isNat(activate(V1)) r7: plus(N,|0|()) -> U11(isNat(N),N) r8: plus(N,s(M)) -> U21(and(isNat(M),n__isNat(N)),M,N) r9: |0|() -> n__0() r10: plus(X1,X2) -> n__plus(X1,X2) r11: isNat(X) -> n__isNat(X) r12: s(X) -> n__s(X) r13: activate(n__0()) -> |0|() r14: activate(n__plus(X1,X2)) -> plus(X1,X2) r15: activate(n__isNat(X)) -> isNat(X) r16: activate(n__s(X)) -> s(X) r17: activate(X) -> X The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17 Take the reduction pair: matrix interpretations: carrier: N^4 order: lexicographic order interpretations: U11#_A(x1,x2) = ((0,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + ((0,0,0,0),(1,0,0,0),(0,0,0,0),(0,1,0,0)) x2 + (0,6,9,0) tt_A() = (9,1,1,7) activate#_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(1,0,1,0)) x1 + (0,5,10,10) n__isNat_A(x1) = ((1,0,0,0),(0,1,0,0),(1,0,1,0),(1,1,0,0)) x1 + (16,21,19,2) isNat#_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(1,0,1,0)) x1 + (0,21,31,7) n__s_A(x1) = ((1,0,0,0),(0,0,0,0),(0,1,0,0),(0,1,1,0)) x1 + (16,10,0,12) n__plus_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(1,1,0,0)) x1 + ((1,0,0,0),(0,1,0,0),(0,1,1,0),(1,1,1,0)) x2 + (12,10,4,0) plus#_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + ((0,0,0,0),(1,0,0,0),(0,1,0,0),(0,0,0,0)) x2 + (0,17,20,8) s_A(x1) = ((1,0,0,0),(0,0,0,0),(0,1,0,0),(0,0,0,0)) x1 + (16,11,0,11) activate_A(x1) = ((1,0,0,0),(0,1,0,0),(0,1,0,0),(0,0,1,0)) x1 + (0,10,16,10) and#_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(1,0,0,0),(0,1,0,0)) x1 + ((0,0,0,0),(1,0,0,0),(1,0,0,0),(0,0,0,0)) x2 isNat_A(x1) = ((1,0,0,0),(0,1,0,0),(0,0,0,0),(1,0,0,0)) x1 + (16,22,18,1) U21#_A(x1,x2,x3) = ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x1 + ((0,0,0,0),(1,0,0,0),(1,1,0,0),(0,0,0,0)) x2 + ((0,0,0,0),(1,0,0,0),(1,1,0,0),(1,0,0,0)) x3 + (0,18,22,9) and_A(x1,x2) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(0,1,0,0)) x2 + (1,1,17,0) |0|_A() = (5,1,2,1) U11_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(1,1,0,0),(1,1,1,0),(1,1,0,0)) x2 + (1,0,0,0) U21_A(x1,x2,x3) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x2 + x3 + (28,3,19,16) plus_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(0,1,0,0),(0,1,1,0),(0,0,0,0)) x2 + (12,10,27,15) n__0_A() = (5,0,1,0) The next rules are strictly ordered: p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18 We remove them from the problem. Then no dependency pair remains.