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: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: U11#_A(x1,x2) = max{48, x2 + 41} tt_A = 41 activate#_A(x1) = max{43, x1 - 51} n__isNat_A(x1) = x1 + 43 isNat#_A(x1) = max{42, x1 - 8} n__s_A(x1) = max{92, x1} n__plus_A(x1,x2) = max{x1 + 92, x2 + 100} plus#_A(x1,x2) = max{48, x1 + 41, x2 + 46} s_A(x1) = max{92, x1} activate_A(x1) = max{19, x1} and#_A(x1,x2) = max{42, x1 + 3, x2 - 3} isNat_A(x1) = x1 + 43 U21#_A(x1,x2,x3) = max{138, x2 + 46, x3 + 41} and_A(x1,x2) = max{x1 - 21, x2 + 39} |0|_A = 1 U11_A(x1,x2) = max{91, x1 - 1, x2} U21_A(x1,x2,x3) = max{192, x1 + 1, x2 + 100, x3 + 92} plus_A(x1,x2) = max{x1 + 92, x2 + 100} n__0_A = 0 precedence: |0| = n__0 > activate# = isNat# = plus# = U21# > U11# > n__isNat = isNat > tt = and > n__plus = and# = plus > U11 > activate = U21 > s > n__s partial status: pi(U11#) = [] pi(tt) = [] pi(activate#) = [] pi(n__isNat) = [] pi(isNat#) = [] pi(n__s) = [] pi(n__plus) = [] pi(plus#) = [] pi(s) = [] pi(activate) = [1] pi(and#) = [1] pi(isNat) = [] pi(U21#) = [] pi(and) = [] pi(|0|) = [] pi(U11) = [2] pi(U21) = [1, 2, 3] pi(plus) = [] pi(n__0) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: U11#_A(x1,x2) = 17 tt_A = 32 activate#_A(x1) = 18 n__isNat_A(x1) = 9 isNat#_A(x1) = 18 n__s_A(x1) = 33 n__plus_A(x1,x2) = 17 plus#_A(x1,x2) = 18 s_A(x1) = 33 activate_A(x1) = 33 and#_A(x1,x2) = max{20, x1 - 13} isNat_A(x1) = 33 U21#_A(x1,x2,x3) = 18 and_A(x1,x2) = 33 |0|_A = 34 U11_A(x1,x2) = 81 U21_A(x1,x2,x3) = 18 plus_A(x1,x2) = 18 n__0_A = 31 precedence: activate > s > n__s = and# > isNat > tt > activate# = n__isNat = isNat# = plus# = U21# = n__0 > U11# > plus > n__plus > and > |0| > U11 = U21 partial status: pi(U11#) = [] pi(tt) = [] pi(activate#) = [] pi(n__isNat) = [] pi(isNat#) = [] pi(n__s) = [] pi(n__plus) = [] pi(plus#) = [] pi(s) = [] pi(activate) = [] pi(and#) = [] pi(isNat) = [] pi(U21#) = [] pi(and) = [] pi(|0|) = [] pi(U11) = [] pi(U21) = [] pi(plus) = [] pi(n__0) = [] The next rules are strictly ordered: p1, p10, p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__isNat(X)) -> isNat#(X) p2: isNat#(n__s(V1)) -> activate#(V1) p3: activate#(n__plus(X1,X2)) -> plus#(X1,X2) p4: plus#(N,s(M)) -> isNat#(M) p5: isNat#(n__s(V1)) -> isNat#(activate(V1)) p6: isNat#(n__plus(V1,V2)) -> activate#(V2) p7: isNat#(n__plus(V1,V2)) -> activate#(V1) p8: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1)) p9: and#(tt(),X) -> activate#(X) p10: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N) p11: U21#(tt(),M,N) -> activate#(M) p12: U21#(tt(),M,N) -> activate#(N) p13: U21#(tt(),M,N) -> plus#(activate(N),activate(M)) p14: plus#(N,|0|()) -> isNat#(N) p15: 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p10, p11, p12, p13, p14} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__isNat(X)) -> isNat#(X) p2: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1)) p3: isNat#(n__plus(V1,V2)) -> activate#(V1) p4: activate#(n__plus(X1,X2)) -> plus#(X1,X2) p5: plus#(N,|0|()) -> isNat#(N) p6: isNat#(n__plus(V1,V2)) -> activate#(V2) p7: isNat#(n__s(V1)) -> isNat#(activate(V1)) p8: isNat#(n__s(V1)) -> activate#(V1) p9: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N) p10: U21#(tt(),M,N) -> plus#(activate(N),activate(M)) p11: plus#(N,s(M)) -> isNat#(M) p12: U21#(tt(),M,N) -> activate#(N) p13: U21#(tt(),M,N) -> activate#(M) 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: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: activate#_A(x1) = max{9, x1 - 14} n__isNat_A(x1) = x1 + 19 isNat#_A(x1) = max{0, x1 - 13} n__plus_A(x1,x2) = max{x1 + 34, x2 + 22} activate_A(x1) = x1 plus#_A(x1,x2) = max{x1 + 20, x2 + 1} |0|_A = 35 n__s_A(x1) = max{22, x1} s_A(x1) = max{22, x1} U21#_A(x1,x2,x3) = max{x1 - 24, x2 + 1, x3 + 20} and_A(x1,x2) = max{24, x1 - 17, x2 + 2} isNat_A(x1) = x1 + 19 tt_A = 34 U11_A(x1,x2) = max{x1 + 15, x2 + 1} U21_A(x1,x2,x3) = max{x2 + 22, x3 + 34} plus_A(x1,x2) = max{x1 + 34, x2 + 22} n__0_A = 35 precedence: and > activate = plus > U21 > s > isNat# = n__s > activate# = n__isNat = isNat = U11 > n__plus = plus# = U21# > |0| > tt = n__0 partial status: pi(activate#) = [] pi(n__isNat) = [] pi(isNat#) = [] pi(n__plus) = [2] pi(activate) = [1] pi(plus#) = [] pi(|0|) = [] pi(n__s) = [] pi(s) = [] pi(U21#) = [] pi(and) = [2] pi(isNat) = [] pi(tt) = [] pi(U11) = [1, 2] pi(U21) = [] pi(plus) = [] pi(n__0) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: activate#_A(x1) = 55 n__isNat_A(x1) = 34 isNat#_A(x1) = 55 n__plus_A(x1,x2) = 34 activate_A(x1) = max{41, x1 - 1} plus#_A(x1,x2) = 17 |0|_A = 76 n__s_A(x1) = 41 s_A(x1) = 41 U21#_A(x1,x2,x3) = 17 and_A(x1,x2) = max{42, x2 - 1} isNat_A(x1) = 34 tt_A = 22 U11_A(x1,x2) = max{56, x1 + 20, x2 + 42} U21_A(x1,x2,x3) = 41 plus_A(x1,x2) = 41 n__0_A = 21 precedence: U11 > activate# = isNat# > plus# = U21# > n__0 > activate = and = isNat > plus > n__plus > |0| > n__isNat = n__s = s = tt = U21 partial status: pi(activate#) = [] pi(n__isNat) = [] pi(isNat#) = [] pi(n__plus) = [] pi(activate) = [] pi(plus#) = [] pi(|0|) = [] pi(n__s) = [] pi(s) = [] pi(U21#) = [] pi(and) = [] pi(isNat) = [] pi(tt) = [] pi(U11) = [1, 2] pi(U21) = [] pi(plus) = [] pi(n__0) = [] The next rules are strictly ordered: p5, p11, p12, p13 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__isNat(X)) -> isNat#(X) p2: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1)) p3: isNat#(n__plus(V1,V2)) -> activate#(V1) p4: activate#(n__plus(X1,X2)) -> plus#(X1,X2) p5: isNat#(n__plus(V1,V2)) -> activate#(V2) p6: isNat#(n__s(V1)) -> isNat#(activate(V1)) p7: isNat#(n__s(V1)) -> activate#(V1) p8: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N) p9: U21#(tt(),M,N) -> plus#(activate(N),activate(M)) 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, p2, p3, p5, p6, p7} {p8, p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__isNat(X)) -> isNat#(X) p2: isNat#(n__s(V1)) -> activate#(V1) p3: isNat#(n__s(V1)) -> isNat#(activate(V1)) p4: isNat#(n__plus(V1,V2)) -> activate#(V2) p5: isNat#(n__plus(V1,V2)) -> activate#(V1) p6: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1)) 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: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: activate#_A(x1) = x1 + 8 n__isNat_A(x1) = x1 + 10 isNat#_A(x1) = x1 + 9 n__s_A(x1) = max{11, x1} activate_A(x1) = x1 n__plus_A(x1,x2) = max{30, x1 + 7, x2 + 19} U11_A(x1,x2) = max{6, x1 - 4, x2} tt_A = 29 U21_A(x1,x2,x3) = max{30, x1 - 11, x2 + 19, x3 + 7} s_A(x1) = max{11, x1} plus_A(x1,x2) = max{30, x1 + 7, x2 + 19} and_A(x1,x2) = x2 + 8 isNat_A(x1) = x1 + 10 n__0_A = 30 |0|_A = 30 precedence: and > isNat# > activate# = n__plus = tt = plus > U11 = U21 > activate > |0| > s > n__0 > n__isNat = n__s = isNat partial status: pi(activate#) = [1] pi(n__isNat) = [] pi(isNat#) = [] pi(n__s) = [] pi(activate) = [1] pi(n__plus) = [] pi(U11) = [2] pi(tt) = [] pi(U21) = [] pi(s) = [] pi(plus) = [] pi(and) = [] pi(isNat) = [] pi(n__0) = [] pi(|0|) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: activate#_A(x1) = 26 n__isNat_A(x1) = 12 isNat#_A(x1) = 26 n__s_A(x1) = 13 activate_A(x1) = max{25, x1 + 2} n__plus_A(x1,x2) = 27 U11_A(x1,x2) = max{55, x2 + 26} tt_A = 13 U21_A(x1,x2,x3) = 26 s_A(x1) = 25 plus_A(x1,x2) = 28 and_A(x1,x2) = 55 isNat_A(x1) = 13 n__0_A = 27 |0|_A = 26 precedence: n__isNat = activate = U11 = tt = |0| > U21 > s = plus = and > isNat# = n__plus > activate# = n__s > isNat > n__0 partial status: pi(activate#) = [] pi(n__isNat) = [] pi(isNat#) = [] pi(n__s) = [] pi(activate) = [1] pi(n__plus) = [] pi(U11) = [2] pi(tt) = [] pi(U21) = [] pi(s) = [] pi(plus) = [] pi(and) = [] pi(isNat) = [] pi(n__0) = [] pi(|0|) = [] 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: isNat#(n__s(V1)) -> activate#(V1) p2: isNat#(n__s(V1)) -> isNat#(activate(V1)) p3: isNat#(n__plus(V1,V2)) -> activate#(V2) p4: isNat#(n__plus(V1,V2)) -> activate#(V1) p5: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1)) 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: {p2, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNat#(n__s(V1)) -> isNat#(activate(V1)) p2: isNat#(n__plus(V1,V2)) -> isNat#(activate(V1)) 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: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: isNat#_A(x1) = max{0, x1 - 1} n__s_A(x1) = x1 activate_A(x1) = x1 n__plus_A(x1,x2) = max{x1 + 7, x2 + 11} U11_A(x1,x2) = max{8, x1 - 11, x2 + 1} tt_A = 12 U21_A(x1,x2,x3) = max{x1 - 11, x2 + 11, x3 + 7} s_A(x1) = x1 plus_A(x1,x2) = max{x1 + 7, x2 + 11} and_A(x1,x2) = max{12, x1 - 3, x2 + 1} isNat_A(x1) = x1 + 17 n__0_A = 13 n__isNat_A(x1) = x1 + 17 |0|_A = 13 precedence: isNat# = n__s = activate = n__plus = U11 = tt = U21 = s = plus = and = isNat = n__0 = n__isNat = |0| partial status: pi(isNat#) = [] pi(n__s) = [] pi(activate) = [] pi(n__plus) = [] pi(U11) = [] pi(tt) = [] pi(U21) = [] pi(s) = [] pi(plus) = [] pi(and) = [] pi(isNat) = [] pi(n__0) = [] pi(n__isNat) = [] pi(|0|) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: isNat#_A(x1) = 22 n__s_A(x1) = 20 activate_A(x1) = max{14, x1 + 2} n__plus_A(x1,x2) = 20 U11_A(x1,x2) = 23 tt_A = 30 U21_A(x1,x2,x3) = 21 s_A(x1) = 20 plus_A(x1,x2) = 22 and_A(x1,x2) = 42 isNat_A(x1) = 20 n__0_A = 10 n__isNat_A(x1) = 20 |0|_A = 13 precedence: isNat# > activate = n__plus = tt = U21 = s = n__0 = |0| > n__s = and > isNat > U11 = plus = n__isNat partial status: pi(isNat#) = [] pi(n__s) = [] pi(activate) = [1] pi(n__plus) = [] pi(U11) = [] pi(tt) = [] pi(U21) = [] pi(s) = [] pi(plus) = [] pi(and) = [] pi(isNat) = [] pi(n__0) = [] pi(n__isNat) = [] 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: isNat#(n__s(V1)) -> isNat#(activate(V1)) 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: isNat#(n__s(V1)) -> isNat#(activate(V1)) 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: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: isNat#_A(x1) = ((1,1),(1,1)) x1 + (1,26) n__s_A(x1) = ((0,1),(1,0)) x1 + (1,31) activate_A(x1) = x1 + (4,2) U11_A(x1,x2) = ((1,1),(1,1)) x2 + (5,2) tt_A() = (3,1) U21_A(x1,x2,x3) = ((1,1),(1,1)) x2 + ((1,1),(1,1)) x3 + (31,43) s_A(x1) = ((0,1),(1,0)) x1 + (1,31) plus_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + (0,17) and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (2,11) isNat_A(x1) = ((1,1),(1,1)) x1 + (3,0) n__0_A() = (2,0) n__plus_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + (0,17) n__isNat_A(x1) = ((1,1),(1,1)) x1 + (2,0) |0|_A() = (5,0) precedence: U11 = U21 = s = plus = n__plus > activate > n__0 = |0| > isNat > n__isNat > tt = and > isNat# = n__s partial status: pi(isNat#) = [] pi(n__s) = [] pi(activate) = [] pi(U11) = [] pi(tt) = [] pi(U21) = [3] pi(s) = [] pi(plus) = [1, 2] pi(and) = [] pi(isNat) = [] pi(n__0) = [] pi(n__plus) = [1, 2] pi(n__isNat) = [] pi(|0|) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: isNat#_A(x1) = (0,0) n__s_A(x1) = (0,0) activate_A(x1) = (2,0) U11_A(x1,x2) = (0,0) tt_A() = (7,2) U21_A(x1,x2,x3) = x3 + (3,2) s_A(x1) = (2,0) plus_A(x1,x2) = x1 + ((0,0),(0,1)) x2 + (4,2) and_A(x1,x2) = (5,1) isNat_A(x1) = (8,2) n__0_A() = (8,3) n__plus_A(x1,x2) = x1 n__isNat_A(x1) = (3,1) |0|_A() = (1,2) precedence: n__0 = |0| > tt > isNat > and > activate = U21 = plus > n__plus = n__isNat > s > n__s > isNat# = U11 partial status: pi(isNat#) = [] pi(n__s) = [] pi(activate) = [] pi(U11) = [] pi(tt) = [] pi(U21) = [3] pi(s) = [] pi(plus) = [] pi(and) = [] pi(isNat) = [] pi(n__0) = [] pi(n__plus) = [1] pi(n__isNat) = [] pi(|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: plus#(N,s(M)) -> U21#(and(isNat(M),n__isNat(N)),M,N) p2: U21#(tt(),M,N) -> plus#(activate(N),activate(M)) 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: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: plus#_A(x1,x2) = ((1,1),(0,1)) x2 + (1,0) s_A(x1) = x1 + (10,12) U21#_A(x1,x2,x3) = ((1,1),(0,1)) x2 + (11,3) and_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,0) isNat_A(x1) = x1 + (2,4) n__isNat_A(x1) = x1 + (2,4) tt_A() = (7,2) activate_A(x1) = x1 + (2,3) U11_A(x1,x2) = ((1,1),(0,1)) x2 + (8,3) U21_A(x1,x2,x3) = ((1,1),(1,1)) x2 + ((1,1),(1,1)) x3 + (39,44) plus_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + (17,22) |0|_A() = (7,1) n__0_A() = (6,1) n__plus_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,1),(1,1)) x2 + (17,22) n__s_A(x1) = x1 + (9,9) precedence: plus# > plus = n__plus > s = U21 > |0| > n__0 > U11 = n__s > and > isNat = n__isNat = tt > U21# = activate partial status: pi(plus#) = [2] pi(s) = [] pi(U21#) = [] pi(and) = [] pi(isNat) = [1] pi(n__isNat) = [1] pi(tt) = [] pi(activate) = [] pi(U11) = [] pi(U21) = [3] pi(plus) = [1, 2] pi(|0|) = [] pi(n__0) = [] pi(n__plus) = [1] pi(n__s) = [1] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: plus#_A(x1,x2) = ((1,1),(0,1)) x2 + (1,0) s_A(x1) = (12,4) U21#_A(x1,x2,x3) = (11,2) and_A(x1,x2) = (17,2) isNat_A(x1) = ((1,1),(0,0)) x1 + (6,2) n__isNat_A(x1) = (1,1) tt_A() = (11,2) activate_A(x1) = (7,2) U11_A(x1,x2) = (8,2) U21_A(x1,x2,x3) = (12,4) plus_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (18,2) |0|_A() = (5,2) n__0_A() = (4,2) n__plus_A(x1,x2) = x1 + (18,2) n__s_A(x1) = (6,4) precedence: isNat = plus > U11 > U21 > s > U21# > plus# = and = n__plus > n__isNat > n__s > tt = n__0 > activate = |0| partial status: pi(plus#) = [2] pi(s) = [] pi(U21#) = [] pi(and) = [] pi(isNat) = [] pi(n__isNat) = [] pi(tt) = [] pi(activate) = [] pi(U11) = [] pi(U21) = [] pi(plus) = [2] pi(|0|) = [] pi(n__0) = [] pi(n__plus) = [1] pi(n__s) = [] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains.