YES We show the termination of the TRS R: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) U12(tt(),V2) -> U13(isNat(activate(V2))) U13(tt()) -> tt() U21(tt(),V1) -> U22(isNat(activate(V1))) U22(tt()) -> tt() U31(tt(),N) -> activate(N) U41(tt(),M,N) -> s(plus(activate(N),activate(M))) and(tt(),X) -> activate(X) isNat(n__0()) -> tt() isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) isNatKind(n__0()) -> tt() isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) isNatKind(n__s(V1)) -> isNatKind(activate(V1)) plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) |0|() -> n__0() plus(X1,X2) -> n__plus(X1,X2) isNatKind(X) -> n__isNatKind(X) s(X) -> n__s(X) and(X1,X2) -> n__and(X1,X2) isNat(X) -> n__isNat(X) activate(n__0()) -> |0|() activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) activate(n__isNatKind(X)) -> isNatKind(X) activate(n__s(X)) -> s(activate(X)) activate(n__and(X1,X2)) -> and(activate(X1),X2) activate(n__isNat(X)) -> isNat(X) activate(X) -> X -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U11#(tt(),V1,V2) -> U12#(isNat(activate(V1)),activate(V2)) p2: U11#(tt(),V1,V2) -> isNat#(activate(V1)) p3: U11#(tt(),V1,V2) -> activate#(V1) p4: U11#(tt(),V1,V2) -> activate#(V2) p5: U12#(tt(),V2) -> U13#(isNat(activate(V2))) p6: U12#(tt(),V2) -> isNat#(activate(V2)) p7: U12#(tt(),V2) -> activate#(V2) p8: U21#(tt(),V1) -> U22#(isNat(activate(V1))) p9: U21#(tt(),V1) -> isNat#(activate(V1)) p10: U21#(tt(),V1) -> activate#(V1) p11: U31#(tt(),N) -> activate#(N) p12: U41#(tt(),M,N) -> s#(plus(activate(N),activate(M))) p13: U41#(tt(),M,N) -> plus#(activate(N),activate(M)) p14: U41#(tt(),M,N) -> activate#(N) p15: U41#(tt(),M,N) -> activate#(M) p16: and#(tt(),X) -> activate#(X) p17: isNat#(n__plus(V1,V2)) -> U11#(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) p18: isNat#(n__plus(V1,V2)) -> and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) p19: isNat#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p20: isNat#(n__plus(V1,V2)) -> activate#(V1) p21: isNat#(n__plus(V1,V2)) -> activate#(V2) p22: isNat#(n__s(V1)) -> U21#(isNatKind(activate(V1)),activate(V1)) p23: isNat#(n__s(V1)) -> isNatKind#(activate(V1)) p24: isNat#(n__s(V1)) -> activate#(V1) p25: isNatKind#(n__plus(V1,V2)) -> and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) p26: isNatKind#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p27: isNatKind#(n__plus(V1,V2)) -> activate#(V1) p28: isNatKind#(n__plus(V1,V2)) -> activate#(V2) p29: isNatKind#(n__s(V1)) -> isNatKind#(activate(V1)) p30: isNatKind#(n__s(V1)) -> activate#(V1) p31: plus#(N,|0|()) -> U31#(and(isNat(N),n__isNatKind(N)),N) p32: plus#(N,|0|()) -> and#(isNat(N),n__isNatKind(N)) p33: plus#(N,|0|()) -> isNat#(N) p34: plus#(N,s(M)) -> U41#(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) p35: plus#(N,s(M)) -> and#(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))) p36: plus#(N,s(M)) -> and#(isNat(M),n__isNatKind(M)) p37: plus#(N,s(M)) -> isNat#(M) p38: activate#(n__0()) -> |0|#() p39: activate#(n__plus(X1,X2)) -> plus#(activate(X1),activate(X2)) p40: activate#(n__plus(X1,X2)) -> activate#(X1) p41: activate#(n__plus(X1,X2)) -> activate#(X2) p42: activate#(n__isNatKind(X)) -> isNatKind#(X) p43: activate#(n__s(X)) -> s#(activate(X)) p44: activate#(n__s(X)) -> activate#(X) p45: activate#(n__and(X1,X2)) -> and#(activate(X1),X2) p46: activate#(n__and(X1,X2)) -> activate#(X1) p47: activate#(n__isNat(X)) -> isNat#(X) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: activate(X) -> X The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p6, p7, p9, p10, p11, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p39, p40, p41, p42, p44, p45, p46, p47} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U11#(tt(),V1,V2) -> U12#(isNat(activate(V1)),activate(V2)) p2: U12#(tt(),V2) -> activate#(V2) p3: activate#(n__isNat(X)) -> isNat#(X) p4: isNat#(n__s(V1)) -> activate#(V1) p5: activate#(n__and(X1,X2)) -> activate#(X1) p6: activate#(n__and(X1,X2)) -> and#(activate(X1),X2) p7: and#(tt(),X) -> activate#(X) p8: activate#(n__s(X)) -> activate#(X) p9: activate#(n__isNatKind(X)) -> isNatKind#(X) p10: isNatKind#(n__s(V1)) -> activate#(V1) p11: activate#(n__plus(X1,X2)) -> activate#(X2) p12: activate#(n__plus(X1,X2)) -> activate#(X1) p13: activate#(n__plus(X1,X2)) -> plus#(activate(X1),activate(X2)) p14: plus#(N,s(M)) -> isNat#(M) p15: isNat#(n__s(V1)) -> isNatKind#(activate(V1)) p16: isNatKind#(n__s(V1)) -> isNatKind#(activate(V1)) p17: isNatKind#(n__plus(V1,V2)) -> activate#(V2) p18: isNatKind#(n__plus(V1,V2)) -> activate#(V1) p19: isNatKind#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p20: isNatKind#(n__plus(V1,V2)) -> and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) p21: isNat#(n__s(V1)) -> U21#(isNatKind(activate(V1)),activate(V1)) p22: U21#(tt(),V1) -> activate#(V1) p23: U21#(tt(),V1) -> isNat#(activate(V1)) p24: isNat#(n__plus(V1,V2)) -> activate#(V2) p25: isNat#(n__plus(V1,V2)) -> activate#(V1) p26: isNat#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p27: isNat#(n__plus(V1,V2)) -> and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) p28: isNat#(n__plus(V1,V2)) -> U11#(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) p29: U11#(tt(),V1,V2) -> activate#(V2) p30: U11#(tt(),V1,V2) -> activate#(V1) p31: U11#(tt(),V1,V2) -> isNat#(activate(V1)) p32: plus#(N,s(M)) -> and#(isNat(M),n__isNatKind(M)) p33: plus#(N,s(M)) -> and#(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))) p34: plus#(N,s(M)) -> U41#(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) p35: U41#(tt(),M,N) -> activate#(M) p36: U41#(tt(),M,N) -> activate#(N) p37: U41#(tt(),M,N) -> plus#(activate(N),activate(M)) p38: plus#(N,|0|()) -> isNat#(N) p39: plus#(N,|0|()) -> and#(isNat(N),n__isNatKind(N)) p40: plus#(N,|0|()) -> U31#(and(isNat(N),n__isNatKind(N)),N) p41: U31#(tt(),N) -> activate#(N) p42: U12#(tt(),V2) -> isNat#(activate(V2)) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: 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, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29 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,x3) = max{x1 + 33, x2 + 102, x3 + 111} tt_A = 68 U12#_A(x1,x2) = max{x1 - 64, x2 + 103} isNat_A(x1) = max{164, x1 + 42} activate_A(x1) = x1 activate#_A(x1) = max{2, x1 - 1} n__isNat_A(x1) = max{164, x1 + 42} isNat#_A(x1) = max{3, x1} n__s_A(x1) = max{113, x1} n__and_A(x1,x2) = max{x1 + 31, x2 + 25} and#_A(x1,x2) = max{x1 + 1, x2 + 3} n__isNatKind_A(x1) = x1 + 47 isNatKind#_A(x1) = max{3, x1} n__plus_A(x1,x2) = max{x1 + 120, x2 + 112} plus#_A(x1,x2) = max{x1 + 76, x2 + 105} s_A(x1) = max{113, x1} isNatKind_A(x1) = x1 + 47 U21#_A(x1,x2) = max{x1 - 48, x2} and_A(x1,x2) = max{x1 + 31, x2 + 25} U41#_A(x1,x2,x3) = max{x1 - 22, x2 + 105, x3 + 76} |0|_A = 132 U31#_A(x1,x2) = max{x1 + 3, x2 + 76} U13_A(x1) = max{69, x1 - 162} U12_A(x1,x2) = max{x1 - 65, x2 + 100} U22_A(x1) = max{1, x1} U31_A(x1,x2) = max{121, x2 + 120} U41_A(x1,x2,x3) = max{x2 + 112, x3 + 120} plus_A(x1,x2) = max{x1 + 120, x2 + 112} U11_A(x1,x2,x3) = max{163, x1 + 33, x2 + 162, x3 + 100} U21_A(x1,x2) = max{164, x1 - 5, x2 + 42} n__0_A = 132 precedence: isNat = n__isNat = U11 > U12 > U13 > plus# = U41# > |0| = n__0 > U21 > U11# = n__plus = plus > U41 > U31# > n__s = n__isNatKind = s = isNatKind > n__and = and > activate > U12# > U31 > and# > activate# > tt = isNat# = isNatKind# = U21# = U22 partial status: pi(U11#) = [] pi(tt) = [] pi(U12#) = [] pi(isNat) = [] pi(activate) = [1] pi(activate#) = [] pi(n__isNat) = [] pi(isNat#) = [] pi(n__s) = [] pi(n__and) = [] pi(and#) = [1, 2] pi(n__isNatKind) = [] pi(isNatKind#) = [] pi(n__plus) = [] pi(plus#) = [] pi(s) = [] pi(isNatKind) = [] pi(U21#) = [] pi(and) = [] pi(U41#) = [] pi(|0|) = [] pi(U31#) = [1] pi(U13) = [] pi(U12) = [2] pi(U22) = [] pi(U31) = [2] pi(U41) = [3] pi(plus) = [] pi(U11) = [] pi(U21) = [2] pi(n__0) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: U11#_A(x1,x2,x3) = 1077 tt_A = 92 U12#_A(x1,x2) = 122 isNat_A(x1) = 1076 activate_A(x1) = x1 + 353 activate#_A(x1) = 122 n__isNat_A(x1) = 580 isNat#_A(x1) = 148 n__s_A(x1) = 75 n__and_A(x1,x2) = 36 and#_A(x1,x2) = max{120, x1 + 30} n__isNatKind_A(x1) = 115 isNatKind#_A(x1) = 147 n__plus_A(x1,x2) = 119 plus#_A(x1,x2) = 121 s_A(x1) = 75 isNatKind_A(x1) = 116 U21#_A(x1,x2) = 148 and_A(x1,x2) = 75 U41#_A(x1,x2,x3) = 121 |0|_A = 1194 U31#_A(x1,x2) = max{120, x1 + 46} U13_A(x1) = 1278 U12_A(x1,x2) = x2 + 1279 U22_A(x1) = 92 U31_A(x1,x2) = max{1345, x2 + 354} U41_A(x1,x2,x3) = 76 plus_A(x1,x2) = 472 U11_A(x1,x2,x3) = 0 U21_A(x1,x2) = 1076 n__0_A = 0 precedence: plus# = U41# > U11# = U12# > isNat# = isNatKind# = U21# > U13 > activate = n__isNatKind = U31 > isNat = plus > U31# > activate# = and# > U41 = n__0 > n__s = s > isNatKind = and > n__and = n__plus = |0| = U12 = U11 > U21 > U22 > tt > n__isNat partial status: pi(U11#) = [] pi(tt) = [] pi(U12#) = [] pi(isNat) = [] pi(activate) = [] pi(activate#) = [] pi(n__isNat) = [] pi(isNat#) = [] pi(n__s) = [] pi(n__and) = [] pi(and#) = [1] pi(n__isNatKind) = [] pi(isNatKind#) = [] pi(n__plus) = [] pi(plus#) = [] pi(s) = [] pi(isNatKind) = [] pi(U21#) = [] pi(and) = [] pi(U41#) = [] pi(|0|) = [] pi(U31#) = [1] pi(U13) = [] pi(U12) = [2] pi(U22) = [] pi(U31) = [2] pi(U41) = [] pi(plus) = [] pi(U11) = [] pi(U21) = [] pi(n__0) = [] The next rules are strictly ordered: p3, p6, p7, p9, p10, p12, p13, p14, p17, p18, p20, p27, p28, p29, p30, p32, p33, p35, p36, p38, p39, p41, p42 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: U11#(tt(),V1,V2) -> U12#(isNat(activate(V1)),activate(V2)) p2: U12#(tt(),V2) -> activate#(V2) p3: isNat#(n__s(V1)) -> activate#(V1) p4: activate#(n__and(X1,X2)) -> activate#(X1) p5: activate#(n__s(X)) -> activate#(X) p6: activate#(n__plus(X1,X2)) -> activate#(X2) p7: isNat#(n__s(V1)) -> isNatKind#(activate(V1)) p8: isNatKind#(n__s(V1)) -> isNatKind#(activate(V1)) p9: isNatKind#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p10: isNat#(n__s(V1)) -> U21#(isNatKind(activate(V1)),activate(V1)) p11: U21#(tt(),V1) -> activate#(V1) p12: U21#(tt(),V1) -> isNat#(activate(V1)) p13: isNat#(n__plus(V1,V2)) -> activate#(V2) p14: isNat#(n__plus(V1,V2)) -> activate#(V1) p15: isNat#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p16: U11#(tt(),V1,V2) -> isNat#(activate(V1)) p17: plus#(N,s(M)) -> U41#(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) p18: U41#(tt(),M,N) -> plus#(activate(N),activate(M)) p19: plus#(N,|0|()) -> U31#(and(isNat(N),n__isNatKind(N)),N) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: activate(X) -> X The estimated dependency graph contains the following SCCs: {p10, p12} {p4, p5, p6} {p8, p9} {p17, p18} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: U21#(tt(),V1) -> isNat#(activate(V1)) p2: isNat#(n__s(V1)) -> U21#(isNatKind(activate(V1)),activate(V1)) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: 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, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: U21#_A(x1,x2) = ((1,0),(1,0)) x2 + (6,5) tt_A() = (0,0) isNat#_A(x1) = ((1,0),(1,0)) x1 + (2,5) activate_A(x1) = x1 n__s_A(x1) = x1 + (5,4) isNatKind_A(x1) = ((0,1),(0,1)) x1 + (1,0) U13_A(x1) = ((0,0),(0,1)) x1 + (1,0) U12_A(x1,x2) = (3,3) isNat_A(x1) = ((1,0),(0,0)) x1 + (0,3) U22_A(x1) = (4,1) U11_A(x1,x2,x3) = (3,3) U21_A(x1,x2) = (5,2) U31_A(x1,x2) = ((1,0),(1,1)) x2 + (2,0) U41_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (8,5) s_A(x1) = x1 + (5,4) plus_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,1) and_A(x1,x2) = ((0,1),(1,0)) x1 + x2 n__0_A() = (1,0) n__plus_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,1) n__isNatKind_A(x1) = ((0,1),(0,1)) x1 + (1,0) |0|_A() = (1,0) n__and_A(x1,x2) = ((0,1),(1,0)) x1 + x2 n__isNat_A(x1) = ((1,0),(0,0)) x1 + (0,3) precedence: U21# = tt = isNat# = activate = n__s = isNatKind = U13 = U12 = isNat = U22 = U11 = U21 = U31 = U41 = s = plus = and = n__0 = n__plus = n__isNatKind = |0| = n__and = n__isNat partial status: pi(U21#) = [] pi(tt) = [] pi(isNat#) = [] pi(activate) = [] pi(n__s) = [] pi(isNatKind) = [] pi(U13) = [] pi(U12) = [] pi(isNat) = [] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(s) = [] pi(plus) = [] pi(and) = [] pi(n__0) = [] pi(n__plus) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] pi(n__isNat) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: U21#_A(x1,x2) = ((1,1),(0,0)) x2 + (7,6) tt_A() = (0,1) isNat#_A(x1) = ((1,0),(0,0)) x1 + (4,5) activate_A(x1) = ((1,1),(0,1)) x1 + (2,5) n__s_A(x1) = (3,5) isNatKind_A(x1) = (6,9) U13_A(x1) = (0,1) U12_A(x1,x2) = (1,4) isNat_A(x1) = ((1,1),(1,1)) x1 + (1,5) U22_A(x1) = (0,0) U11_A(x1,x2,x3) = (1,12) U21_A(x1,x2) = (1,0) U31_A(x1,x2) = ((1,1),(0,1)) x2 + (2,5) U41_A(x1,x2,x3) = (5,6) s_A(x1) = (4,5) plus_A(x1,x2) = ((1,1),(0,1)) x1 + (8,7) and_A(x1,x2) = ((1,1),(1,1)) x2 + (2,5) n__0_A() = (0,0) n__plus_A(x1,x2) = ((1,1),(0,1)) x1 + (7,7) n__isNatKind_A(x1) = (0,4) |0|_A() = (0,4) n__and_A(x1,x2) = ((0,0),(1,1)) x2 + (1,4) n__isNat_A(x1) = ((1,1),(1,1)) x1 precedence: |0| > U21# > U11 > U12 > U13 > U41 > n__s > U31 > activate = isNatKind = and > tt > plus = n__and > n__0 > s > isNat# > n__plus > isNat > n__isNatKind = n__isNat > U21 > U22 partial status: pi(U21#) = [] pi(tt) = [] pi(isNat#) = [] pi(activate) = [] pi(n__s) = [] pi(isNatKind) = [] pi(U13) = [] pi(U12) = [] pi(isNat) = [] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(s) = [] pi(plus) = [1] pi(and) = [] pi(n__0) = [] pi(n__plus) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] pi(n__isNat) = [] The next rules are strictly ordered: p1, p2 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: activate#(n__and(X1,X2)) -> activate#(X1) p2: activate#(n__plus(X1,X2)) -> activate#(X2) p3: activate#(n__s(X)) -> activate#(X) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: activate(X) -> X The set of usable rules consists of (no rules) 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 + 4 n__and_A(x1,x2) = max{x1, x2} n__plus_A(x1,x2) = max{x1 - 1, x2} n__s_A(x1) = max{1, x1} precedence: activate# = n__and = n__plus = n__s partial status: pi(activate#) = [1] pi(n__and) = [1, 2] pi(n__plus) = [2] pi(n__s) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: activate#_A(x1) = x1 + 2 n__and_A(x1,x2) = max{x1, x2} n__plus_A(x1,x2) = x2 n__s_A(x1) = x1 precedence: activate# = n__and = n__plus = n__s partial status: pi(activate#) = [1] pi(n__and) = [1, 2] pi(n__plus) = [2] pi(n__s) = [1] The next rules are strictly ordered: p1, p2, p3 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: isNatKind#(n__s(V1)) -> isNatKind#(activate(V1)) p2: isNatKind#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: 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, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: isNatKind#_A(x1) = x1 + 64 n__s_A(x1) = max{3, x1} activate_A(x1) = x1 n__plus_A(x1,x2) = max{63, x1 + 43, x2 + 15} U13_A(x1) = 16 tt_A = 0 U12_A(x1,x2) = 17 isNat_A(x1) = x1 + 18 U22_A(x1) = max{1, x1 - 20} U11_A(x1,x2,x3) = max{27, x2 + 16} U21_A(x1,x2) = max{2, x2 - 1} U31_A(x1,x2) = max{62, x1 - 18, x2 + 1} U41_A(x1,x2,x3) = max{63, x2 + 15, x3 + 43} s_A(x1) = max{3, x1} plus_A(x1,x2) = max{63, x1 + 43, x2 + 15} and_A(x1,x2) = max{x1 + 37, x2 + 15} n__0_A = 46 isNatKind_A(x1) = x1 + 45 n__isNatKind_A(x1) = x1 + 45 |0|_A = 46 n__and_A(x1,x2) = max{x1 + 37, x2 + 15} n__isNat_A(x1) = x1 + 18 precedence: isNatKind# = n__s = activate = n__plus = U13 = tt = U12 = isNat = U22 = U11 = U21 = U31 = U41 = s = plus = and = n__0 = isNatKind = n__isNatKind = |0| = n__and = n__isNat partial status: pi(isNatKind#) = [] pi(n__s) = [] pi(activate) = [] pi(n__plus) = [] pi(U13) = [] pi(tt) = [] pi(U12) = [] pi(isNat) = [] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(s) = [] pi(plus) = [] pi(and) = [] pi(n__0) = [] pi(isNatKind) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] pi(n__isNat) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: isNatKind#_A(x1) = 251 n__s_A(x1) = 11 activate_A(x1) = x1 + 184 n__plus_A(x1,x2) = 166 U13_A(x1) = 319 tt_A = 320 U12_A(x1,x2) = 319 isNat_A(x1) = x1 + 235 U22_A(x1) = 659 U11_A(x1,x2,x3) = 400 U21_A(x1,x2) = 318 U31_A(x1,x2) = 1 U41_A(x1,x2,x3) = 119 s_A(x1) = 12 plus_A(x1,x2) = 350 and_A(x1,x2) = 82 n__0_A = 43 isNatKind_A(x1) = 82 n__isNatKind_A(x1) = 82 |0|_A = 44 n__and_A(x1,x2) = 1 n__isNat_A(x1) = x1 + 51 precedence: activate = U41 = s = n__and > isNatKind# = n__s = n__plus = U13 = tt = U12 = isNat = U22 = U11 = U21 = U31 = plus = n__0 = isNatKind = n__isNat > and = n__isNatKind = |0| partial status: pi(isNatKind#) = [] pi(n__s) = [] pi(activate) = [1] pi(n__plus) = [] pi(U13) = [] pi(tt) = [] pi(U12) = [] pi(isNat) = [1] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(s) = [] pi(plus) = [] pi(and) = [] pi(n__0) = [] pi(isNatKind) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] pi(n__isNat) = [] 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: isNatKind#(n__s(V1)) -> isNatKind#(activate(V1)) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: 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: isNatKind#(n__s(V1)) -> isNatKind#(activate(V1)) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: 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, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: isNatKind#_A(x1) = ((1,0),(1,0)) x1 + (0,1) n__s_A(x1) = ((1,0),(1,0)) x1 + (5,0) activate_A(x1) = x1 U13_A(x1) = (3,2) tt_A() = (2,1) U12_A(x1,x2) = (4,2) isNat_A(x1) = ((1,1),(1,0)) x1 + (0,3) U22_A(x1) = (3,1) U11_A(x1,x2,x3) = ((0,0),(1,0)) x1 + (5,0) U21_A(x1,x2) = ((0,1),(0,0)) x1 + ((1,0),(1,0)) x2 + (3,1) U31_A(x1,x2) = ((1,1),(1,1)) x2 + (2,0) U41_A(x1,x2,x3) = ((1,0),(1,0)) x2 + ((1,1),(1,1)) x3 + (10,5) s_A(x1) = ((1,0),(1,0)) x1 + (5,0) plus_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,0),(1,1)) x2 + (5,0) and_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (4,1) n__0_A() = (1,1) n__plus_A(x1,x2) = ((1,1),(1,1)) x1 + ((1,0),(1,1)) x2 + (5,0) isNatKind_A(x1) = ((1,0),(1,0)) x1 + (3,0) n__isNatKind_A(x1) = ((1,0),(1,0)) x1 + (3,0) |0|_A() = (1,1) n__and_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (4,1) n__isNat_A(x1) = ((1,1),(1,0)) x1 + (0,3) precedence: isNatKind = n__isNatKind > and = n__and > isNatKind# = activate = isNat = U41 = s = plus > U21 > U11 = n__plus > U12 = U22 > U13 = tt > |0| > U31 = n__isNat > n__0 > n__s partial status: pi(isNatKind#) = [] pi(n__s) = [] pi(activate) = [1] pi(U13) = [] pi(tt) = [] pi(U12) = [] pi(isNat) = [] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [2] pi(U41) = [] pi(s) = [] pi(plus) = [2] pi(and) = [2] pi(n__0) = [] pi(n__plus) = [2] pi(isNatKind) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [2] pi(n__isNat) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: isNatKind#_A(x1) = (0,0) n__s_A(x1) = (0,1) activate_A(x1) = ((0,1),(0,1)) x1 + (5,0) U13_A(x1) = (2,1) tt_A() = (1,0) U12_A(x1,x2) = (6,1) isNat_A(x1) = (0,3) U22_A(x1) = (2,0) U11_A(x1,x2,x3) = (0,0) U21_A(x1,x2) = (0,2) U31_A(x1,x2) = (0,0) U41_A(x1,x2,x3) = (3,0) s_A(x1) = (2,0) plus_A(x1,x2) = (4,0) and_A(x1,x2) = ((0,1),(0,1)) x2 + (5,3) n__0_A() = (0,0) n__plus_A(x1,x2) = (1,0) isNatKind_A(x1) = (5,3) n__isNatKind_A(x1) = (0,0) |0|_A() = (5,0) n__and_A(x1,x2) = ((0,1),(0,1)) x2 + (5,3) n__isNat_A(x1) = (0,3) precedence: isNat = isNatKind = n__isNatKind > U11 > n__0 > U22 > plus > U31 > U13 = tt > U41 > and > isNatKind# = n__s = activate = U12 = U21 = s = n__isNat > n__and > |0| > n__plus partial status: pi(isNatKind#) = [] pi(n__s) = [] pi(activate) = [] pi(U13) = [] pi(tt) = [] pi(U12) = [] pi(isNat) = [] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(s) = [] pi(plus) = [] pi(and) = [] pi(n__0) = [] pi(n__plus) = [] pi(isNatKind) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] pi(n__isNat) = [] 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)) -> U41#(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) p2: U41#(tt(),M,N) -> plus#(activate(N),activate(M)) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: 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, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29 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) = ((0,1),(0,0)) x2 + (24,21) s_A(x1) = ((0,0),(0,1)) x1 + (21,20) U41#_A(x1,x2,x3) = ((0,1),(0,0)) x2 + (25,21) and_A(x1,x2) = ((1,1),(0,1)) x2 + (1,0) isNat_A(x1) = ((0,1),(0,1)) x1 + (35,15) n__isNatKind_A(x1) = ((0,0),(0,1)) x1 + (22,10) n__and_A(x1,x2) = ((1,1),(0,1)) x2 n__isNat_A(x1) = ((0,0),(0,1)) x1 + (19,15) tt_A() = (34,19) activate_A(x1) = ((1,1),(0,1)) x1 + (1,0) U13_A(x1) = x1 + (1,0) U12_A(x1,x2) = ((0,1),(0,0)) x1 + ((0,1),(0,1)) x2 + (18,15) U22_A(x1) = ((0,0),(1,0)) x1 + (36,0) U31_A(x1,x2) = ((1,1),(0,1)) x2 + (8,9) U41_A(x1,x2,x3) = ((0,1),(0,0)) x1 + ((0,0),(0,1)) x2 + x3 + (3,20) plus_A(x1,x2) = ((1,1),(0,1)) x1 + ((0,1),(0,1)) x2 U11_A(x1,x2,x3) = ((0,1),(0,0)) x2 + ((0,1),(0,1)) x3 + (34,15) U21_A(x1,x2) = ((0,0),(0,1)) x2 + (36,35) isNatKind_A(x1) = ((0,1),(0,1)) x1 + (33,10) n__0_A() = (24,9) n__plus_A(x1,x2) = ((1,1),(0,1)) x1 + ((0,1),(0,1)) x2 n__s_A(x1) = ((0,0),(0,1)) x1 + (0,20) |0|_A() = (34,9) precedence: plus# > and = activate = U31 = isNatKind > isNat > n__and = n__isNat = U21 > plus > U22 = U41 > s = U41# > n__plus > U11 > U12 > tt = U13 > n__s > |0| > n__0 > n__isNatKind partial status: pi(plus#) = [] pi(s) = [] pi(U41#) = [] pi(and) = [] pi(isNat) = [] pi(n__isNatKind) = [] pi(n__and) = [] pi(n__isNat) = [] pi(tt) = [] pi(activate) = [] pi(U13) = [1] pi(U12) = [] pi(U22) = [] pi(U31) = [2] pi(U41) = [] pi(plus) = [] pi(U11) = [] pi(U21) = [] pi(isNatKind) = [] pi(n__0) = [] pi(n__plus) = [] pi(n__s) = [] pi(|0|) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: standard order interpretations: plus#_A(x1,x2) = (5,3) s_A(x1) = (7,3) U41#_A(x1,x2,x3) = (6,3) and_A(x1,x2) = (10,3) isNat_A(x1) = (4,2) n__isNatKind_A(x1) = (0,0) n__and_A(x1,x2) = (9,0) n__isNat_A(x1) = (1,2) tt_A() = (1,0) activate_A(x1) = (10,3) U13_A(x1) = (1,0) U12_A(x1,x2) = (2,2) U22_A(x1) = (2,1) U31_A(x1,x2) = (11,3) U41_A(x1,x2,x3) = (8,3) plus_A(x1,x2) = (8,3) U11_A(x1,x2,x3) = (3,2) U21_A(x1,x2) = (3,2) isNatKind_A(x1) = (10,3) n__0_A() = (0,1) n__plus_A(x1,x2) = (0,0) n__s_A(x1) = (1,2) |0|_A() = (0,1) precedence: |0| > n__0 > n__s > n__plus > n__isNat = plus > U41 > U31 > plus# = s = U41# > and = activate = isNatKind > isNat > U11 > U13 = U12 > n__isNatKind > U21 > U22 > tt > n__and partial status: pi(plus#) = [] pi(s) = [] pi(U41#) = [] pi(and) = [] pi(isNat) = [] pi(n__isNatKind) = [] pi(n__and) = [] pi(n__isNat) = [] pi(tt) = [] pi(activate) = [] pi(U13) = [] pi(U12) = [] pi(U22) = [] pi(U31) = [] pi(U41) = [] pi(plus) = [] pi(U11) = [] pi(U21) = [] pi(isNatKind) = [] pi(n__0) = [] pi(n__plus) = [] pi(n__s) = [] 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: U41#(tt(),M,N) -> plus#(activate(N),activate(M)) and R consists of: r1: U11(tt(),V1,V2) -> U12(isNat(activate(V1)),activate(V2)) r2: U12(tt(),V2) -> U13(isNat(activate(V2))) r3: U13(tt()) -> tt() r4: U21(tt(),V1) -> U22(isNat(activate(V1))) r5: U22(tt()) -> tt() r6: U31(tt(),N) -> activate(N) r7: U41(tt(),M,N) -> s(plus(activate(N),activate(M))) r8: and(tt(),X) -> activate(X) r9: isNat(n__0()) -> tt() r10: isNat(n__plus(V1,V2)) -> U11(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) r11: isNat(n__s(V1)) -> U21(isNatKind(activate(V1)),activate(V1)) r12: isNatKind(n__0()) -> tt() r13: isNatKind(n__plus(V1,V2)) -> and(isNatKind(activate(V1)),n__isNatKind(activate(V2))) r14: isNatKind(n__s(V1)) -> isNatKind(activate(V1)) r15: plus(N,|0|()) -> U31(and(isNat(N),n__isNatKind(N)),N) r16: plus(N,s(M)) -> U41(and(and(isNat(M),n__isNatKind(M)),n__and(n__isNat(N),n__isNatKind(N))),M,N) r17: |0|() -> n__0() r18: plus(X1,X2) -> n__plus(X1,X2) r19: isNatKind(X) -> n__isNatKind(X) r20: s(X) -> n__s(X) r21: and(X1,X2) -> n__and(X1,X2) r22: isNat(X) -> n__isNat(X) r23: activate(n__0()) -> |0|() r24: activate(n__plus(X1,X2)) -> plus(activate(X1),activate(X2)) r25: activate(n__isNatKind(X)) -> isNatKind(X) r26: activate(n__s(X)) -> s(activate(X)) r27: activate(n__and(X1,X2)) -> and(activate(X1),X2) r28: activate(n__isNat(X)) -> isNat(X) r29: activate(X) -> X The estimated dependency graph contains the following SCCs: (no SCCs)