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(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) activate(n__0()) -> |0|() activate(n__plus(X1,X2)) -> plus(X1,X2) activate(n__isNatKind(X)) -> isNatKind(X) activate(n__s(X)) -> s(X) activate(n__and(X1,X2)) -> and(X1,X2) 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(isNat(N),n__isNatKind(N))),M,N) p35: plus#(N,s(M)) -> and#(and(isNat(M),n__isNatKind(M)),n__and(isNat(N),n__isNatKind(N))) p36: plus#(N,s(M)) -> and#(isNat(M),n__isNatKind(M)) p37: plus#(N,s(M)) -> isNat#(M) p38: plus#(N,s(M)) -> isNat#(N) p39: activate#(n__0()) -> |0|#() p40: activate#(n__plus(X1,X2)) -> plus#(X1,X2) p41: activate#(n__isNatKind(X)) -> isNatKind#(X) p42: activate#(n__s(X)) -> s#(X) p43: activate#(n__and(X1,X2)) -> and#(X1,X2) 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(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: activate(n__0()) -> |0|() r23: activate(n__plus(X1,X2)) -> plus(X1,X2) r24: activate(n__isNatKind(X)) -> isNatKind(X) r25: activate(n__s(X)) -> s(X) r26: activate(n__and(X1,X2)) -> and(X1,X2) r27: 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, p38, p40, p41, p43} -- 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__and(X1,X2)) -> and#(X1,X2) p4: and#(tt(),X) -> activate#(X) p5: activate#(n__isNatKind(X)) -> isNatKind#(X) p6: isNatKind#(n__s(V1)) -> activate#(V1) p7: activate#(n__plus(X1,X2)) -> plus#(X1,X2) p8: plus#(N,s(M)) -> isNat#(N) p9: isNat#(n__s(V1)) -> activate#(V1) p10: isNat#(n__s(V1)) -> isNatKind#(activate(V1)) p11: isNatKind#(n__s(V1)) -> isNatKind#(activate(V1)) p12: isNatKind#(n__plus(V1,V2)) -> activate#(V2) p13: isNatKind#(n__plus(V1,V2)) -> activate#(V1) p14: isNatKind#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p15: isNatKind#(n__plus(V1,V2)) -> and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) p16: isNat#(n__s(V1)) -> U21#(isNatKind(activate(V1)),activate(V1)) p17: U21#(tt(),V1) -> activate#(V1) p18: U21#(tt(),V1) -> isNat#(activate(V1)) p19: isNat#(n__plus(V1,V2)) -> activate#(V2) p20: isNat#(n__plus(V1,V2)) -> activate#(V1) p21: isNat#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p22: isNat#(n__plus(V1,V2)) -> and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) p23: isNat#(n__plus(V1,V2)) -> U11#(and(isNatKind(activate(V1)),n__isNatKind(activate(V2))),activate(V1),activate(V2)) p24: U11#(tt(),V1,V2) -> activate#(V2) p25: U11#(tt(),V1,V2) -> activate#(V1) p26: U11#(tt(),V1,V2) -> isNat#(activate(V1)) p27: plus#(N,s(M)) -> isNat#(M) p28: plus#(N,s(M)) -> and#(isNat(M),n__isNatKind(M)) p29: plus#(N,s(M)) -> and#(and(isNat(M),n__isNatKind(M)),n__and(isNat(N),n__isNatKind(N))) p30: plus#(N,s(M)) -> U41#(and(and(isNat(M),n__isNatKind(M)),n__and(isNat(N),n__isNatKind(N))),M,N) p31: U41#(tt(),M,N) -> activate#(M) p32: U41#(tt(),M,N) -> activate#(N) p33: U41#(tt(),M,N) -> plus#(activate(N),activate(M)) p34: plus#(N,|0|()) -> isNat#(N) p35: plus#(N,|0|()) -> and#(isNat(N),n__isNatKind(N)) p36: plus#(N,|0|()) -> U31#(and(isNat(N),n__isNatKind(N)),N) p37: U31#(tt(),N) -> activate#(N) p38: 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(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: activate(n__0()) -> |0|() r23: activate(n__plus(X1,X2)) -> plus(X1,X2) r24: activate(n__isNatKind(X)) -> isNatKind(X) r25: activate(n__s(X)) -> s(X) r26: activate(n__and(X1,X2)) -> and(X1,X2) r27: 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 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U11#_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(0,0)) x3 + (23,2) tt_A() = (2,9) U12#_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (3,3) isNat_A(x1) = ((1,0),(0,0)) x1 + (0,34) activate_A(x1) = ((1,0),(1,1)) x1 + (0,12) activate#_A(x1) = ((1,0),(1,0)) x1 + (3,4) n__and_A(x1,x2) = ((1,0),(0,0)) x2 + (15,15) and#_A(x1,x2) = ((1,0),(0,0)) x2 + (4,20) n__isNatKind_A(x1) = ((1,0),(0,0)) x1 + (7,6) isNatKind#_A(x1) = ((1,0),(0,0)) x1 + (1,5) n__s_A(x1) = ((1,0),(0,0)) x1 + (6,13) n__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (22,13) plus#_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (21,27) s_A(x1) = ((1,0),(0,0)) x1 + (6,14) isNat#_A(x1) = ((1,0),(1,0)) x1 + (3,22) isNatKind_A(x1) = ((1,0),(1,0)) x1 + (7,12) U21#_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (4,21) and_A(x1,x2) = ((1,0),(1,0)) x2 + (15,26) U41#_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(1,1)) x3 + (26,3) |0|_A() = (2,21) U31#_A(x1,x2) = ((1,0),(1,1)) x2 + (4,22) U13_A(x1) = ((1,0),(1,1)) x1 + (2,2) U12_A(x1,x2) = ((1,0),(0,0)) x2 + (3,35) U22_A(x1) = ((1,0),(0,0)) x1 + (6,10) U31_A(x1,x2) = x2 + (3,12) U41_A(x1,x2,x3) = ((0,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (28,13) plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (22,46) U11_A(x1,x2,x3) = ((1,0),(1,0)) x3 + (4,36) U21_A(x1,x2) = ((1,0),(0,0)) x2 + (6,11) n__0_A() = (2,8) precedence: activate > U12 > isNatKind = U13 > n__plus = and = |0| = plus > isNat > n__and > U41# = U41 > n__isNatKind > n__s = s = isNat# = n__0 > U31# = U11 = U21 > U11# = tt = U12# = activate# = U21# = U22 > plus# > and# > U31 > isNatKind# partial status: pi(U11#) = [2] pi(tt) = [] pi(U12#) = [] pi(isNat) = [] pi(activate) = [] pi(activate#) = [] pi(n__and) = [] pi(and#) = [] pi(n__isNatKind) = [] pi(isNatKind#) = [] pi(n__s) = [] pi(n__plus) = [] pi(plus#) = [1] pi(s) = [] pi(isNat#) = [] pi(isNatKind) = [] pi(U21#) = [2] pi(and) = [] pi(U41#) = [] pi(|0|) = [] pi(U31#) = [2] pi(U13) = [1] pi(U12) = [] pi(U22) = [] pi(U31) = [] pi(U41) = [] pi(plus) = [] pi(U11) = [] pi(U21) = [] pi(n__0) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: U11#_A(x1,x2,x3) = (7,0) tt_A() = (11,17) U12#_A(x1,x2) = (6,1) isNat_A(x1) = (14,0) activate_A(x1) = (9,6) activate#_A(x1) = (4,9) n__and_A(x1,x2) = (1,3) and#_A(x1,x2) = (0,0) n__isNatKind_A(x1) = (15,18) isNatKind#_A(x1) = (3,4) n__s_A(x1) = (0,3) n__plus_A(x1,x2) = (0,1) plus#_A(x1,x2) = (3,8) s_A(x1) = (6,4) isNat#_A(x1) = (5,10) isNatKind_A(x1) = (15,18) U21#_A(x1,x2) = (5,10) and_A(x1,x2) = (2,5) U41#_A(x1,x2,x3) = (7,7) |0|_A() = (0,1) U31#_A(x1,x2) = (1,2) U13_A(x1) = ((0,0),(1,0)) x1 + (9,1) U12_A(x1,x2) = (10,16) U22_A(x1) = (12,18) U31_A(x1,x2) = (0,0) U41_A(x1,x2,x3) = (7,7) plus_A(x1,x2) = (8,2) U11_A(x1,x2,x3) = (11,0) U21_A(x1,x2) = (13,19) n__0_A() = (0,0) precedence: n__0 > U41 > U12 > activate = U41# > and > isNat > U11 > n__plus > isNatKind > isNat# = U21# = |0| > U11# > U12# > n__s > isNatKind# > U21 > U31 > U13 > s > n__isNatKind > and# > tt = activate# > plus# > U31# > plus > U22 > n__and partial status: pi(U11#) = [] pi(tt) = [] pi(U12#) = [] pi(isNat) = [] pi(activate) = [] pi(activate#) = [] pi(n__and) = [] pi(and#) = [] pi(n__isNatKind) = [] pi(isNatKind#) = [] pi(n__s) = [] pi(n__plus) = [] pi(plus#) = [] pi(s) = [] pi(isNat#) = [] pi(isNatKind) = [] pi(U21#) = [] pi(and) = [] pi(U41#) = [] pi(|0|) = [] pi(U31#) = [] pi(U13) = [] pi(U12) = [] pi(U22) = [] pi(U31) = [] pi(U41) = [] pi(plus) = [] pi(U11) = [] pi(U21) = [] pi(n__0) = [] The next rules are strictly ordered: p1, p2, p4, p5, p6, p7, p8, p9, p10, p12, p13, p19, p20, p21, p22, p23, p24, p25, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: activate#(n__and(X1,X2)) -> and#(X1,X2) p2: isNatKind#(n__s(V1)) -> isNatKind#(activate(V1)) p3: isNatKind#(n__plus(V1,V2)) -> isNatKind#(activate(V1)) p4: isNatKind#(n__plus(V1,V2)) -> and#(isNatKind(activate(V1)),n__isNatKind(activate(V2))) p5: isNat#(n__s(V1)) -> U21#(isNatKind(activate(V1)),activate(V1)) p6: U21#(tt(),V1) -> activate#(V1) p7: U21#(tt(),V1) -> isNat#(activate(V1)) p8: U11#(tt(),V1,V2) -> isNat#(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(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: activate(n__0()) -> |0|() r23: activate(n__plus(X1,X2)) -> plus(X1,X2) r24: activate(n__isNatKind(X)) -> isNatKind(X) r25: activate(n__s(X)) -> s(X) r26: activate(n__and(X1,X2)) -> and(X1,X2) r27: activate(X) -> X The estimated dependency graph contains the following SCCs: {p2, p3} {p5, p7} -- 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(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: activate(n__0()) -> |0|() r23: activate(n__plus(X1,X2)) -> plus(X1,X2) r24: activate(n__isNatKind(X)) -> isNatKind(X) r25: activate(n__s(X)) -> s(X) r26: activate(n__and(X1,X2)) -> and(X1,X2) r27: 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 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isNatKind#_A(x1) = ((1,0),(0,0)) x1 + (33,1) n__s_A(x1) = x1 + (33,20) activate_A(x1) = x1 + (0,6) n__plus_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (34,5) U13_A(x1) = (2,1) tt_A() = (1,2) U12_A(x1,x2) = (3,7) isNat_A(x1) = ((1,0),(0,0)) x1 + (68,24) U22_A(x1) = (33,6) U11_A(x1,x2,x3) = ((1,0),(1,1)) x1 + (68,5) U21_A(x1,x2) = ((1,0),(0,0)) x2 + (34,7) U31_A(x1,x2) = x2 + (1,7) U41_A(x1,x2,x3) = ((1,0),(1,0)) x2 + x3 + (67,37) s_A(x1) = x1 + (33,25) plus_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (34,5) n__0_A() = (0,0) and_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (1,2) isNatKind_A(x1) = ((1,0),(1,1)) x1 + (2,3) n__isNatKind_A(x1) = ((1,0),(1,1)) x1 + (2,1) |0|_A() = (0,5) n__and_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (1,1) precedence: U31 > n__plus = plus > isNatKind = n__isNatKind > U41 = and > activate > isNatKind# > |0| > s > n__s > isNat > U11 > U12 > U13 = U21 = n__0 > U22 = n__and > tt partial status: pi(isNatKind#) = [] pi(n__s) = [] pi(activate) = [1] pi(n__plus) = [1] pi(U13) = [] pi(tt) = [] pi(U12) = [] pi(isNat) = [] pi(U22) = [] pi(U11) = [1] pi(U21) = [] pi(U31) = [2] pi(U41) = [] pi(s) = [1] pi(plus) = [1] pi(n__0) = [] pi(and) = [] pi(isNatKind) = [1] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isNatKind#_A(x1) = (0,0) n__s_A(x1) = (0,0) activate_A(x1) = (14,8) n__plus_A(x1,x2) = (12,4) U13_A(x1) = (11,3) tt_A() = (10,2) U12_A(x1,x2) = (15,4) isNat_A(x1) = (9,6) U22_A(x1) = (1,1) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (6,5) U21_A(x1,x2) = (2,9) U31_A(x1,x2) = ((1,0),(0,0)) x2 + (15,9) U41_A(x1,x2,x3) = (12,10) s_A(x1) = (9,9) plus_A(x1,x2) = (13,5) n__0_A() = (7,1) and_A(x1,x2) = (2,2) isNatKind_A(x1) = (11,3) n__isNatKind_A(x1) = (1,2) |0|_A() = (8,7) n__and_A(x1,x2) = (1,1) precedence: isNatKind# = U31 > |0| > isNat > activate = U11 > U12 > plus > n__plus > isNatKind > and > n__isNatKind > n__0 > U41 > s > n__s > U13 > tt > n__and > U21 > U22 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(n__0) = [] pi(and) = [] pi(isNatKind) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] 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(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: activate(n__0()) -> |0|() r23: activate(n__plus(X1,X2)) -> plus(X1,X2) r24: activate(n__isNatKind(X)) -> isNatKind(X) r25: activate(n__s(X)) -> s(X) r26: activate(n__and(X1,X2)) -> and(X1,X2) r27: 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(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: activate(n__0()) -> |0|() r23: activate(n__plus(X1,X2)) -> plus(X1,X2) r24: activate(n__isNatKind(X)) -> isNatKind(X) r25: activate(n__s(X)) -> s(X) r26: activate(n__and(X1,X2)) -> and(X1,X2) r27: 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 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isNatKind#_A(x1) = ((1,0),(1,1)) x1 + (1,2) n__s_A(x1) = ((1,0),(1,0)) x1 + (7,6) activate_A(x1) = ((1,0),(1,1)) x1 + (0,5) U13_A(x1) = (5,3) tt_A() = (4,2) U12_A(x1,x2) = ((1,0),(1,0)) x1 + (5,0) isNat_A(x1) = x1 + (0,28) U22_A(x1) = (5,1) U11_A(x1,x2,x3) = x2 + x3 + (6,1) U21_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (2,2) U31_A(x1,x2) = x2 + (6,1) U41_A(x1,x2,x3) = ((1,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (14,15) s_A(x1) = ((1,0),(1,0)) x1 + (7,7) plus_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (7,13) n__0_A() = (5,20) n__plus_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (7,12) and_A(x1,x2) = ((1,0),(0,0)) x2 + (5,11) isNatKind_A(x1) = x1 + (1,0) n__isNatKind_A(x1) = x1 + (1,0) |0|_A() = (5,29) n__and_A(x1,x2) = ((1,0),(0,0)) x2 + (5,8) precedence: isNatKind# > and > U31 > n__0 = |0| > activate = U41 = s = plus > tt > n__plus > n__s = U13 = U12 = isNat = U11 = U21 > n__and > U22 = isNatKind = n__isNatKind partial status: pi(isNatKind#) = [1] pi(n__s) = [] pi(activate) = [1] pi(U13) = [] pi(tt) = [] pi(U12) = [] pi(isNat) = [1] pi(U22) = [] pi(U11) = [2, 3] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(s) = [] pi(plus) = [1, 2] pi(n__0) = [] pi(n__plus) = [1, 2] pi(and) = [] pi(isNatKind) = [1] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isNatKind#_A(x1) = (1,4) n__s_A(x1) = (4,5) activate_A(x1) = (3,3) U13_A(x1) = (2,2) tt_A() = (1,1) U12_A(x1,x2) = (4,4) isNat_A(x1) = ((1,0),(1,1)) x1 + (12,12) U22_A(x1) = (0,0) U11_A(x1,x2,x3) = ((0,0),(1,0)) x2 + x3 + (5,8) U21_A(x1,x2) = (0,1) U31_A(x1,x2) = (2,12) U41_A(x1,x2,x3) = (6,7) s_A(x1) = (5,6) plus_A(x1,x2) = ((1,0),(0,0)) x2 + (4,11) n__0_A() = (7,2) n__plus_A(x1,x2) = ((1,0),(0,0)) x2 + (0,1) and_A(x1,x2) = (6,8) isNatKind_A(x1) = (2,2) n__isNatKind_A(x1) = (0,10) |0|_A() = (7,9) n__and_A(x1,x2) = (6,7) precedence: U22 > plus > isNat = n__plus = n__isNatKind = |0| > n__and > n__s = U21 > U41 > and > activate = tt = U31 = s = n__0 > isNatKind# > U11 > U12 > U13 > isNatKind partial status: pi(isNatKind#) = [] pi(n__s) = [] pi(activate) = [] pi(U13) = [] pi(tt) = [] pi(U12) = [] pi(isNat) = [1] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(s) = [] pi(plus) = [] pi(n__0) = [] pi(n__plus) = [] pi(and) = [] pi(isNatKind) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] 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: isNat#(n__s(V1)) -> U21#(isNatKind(activate(V1)),activate(V1)) p2: U21#(tt(),V1) -> isNat#(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(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: activate(n__0()) -> |0|() r23: activate(n__plus(X1,X2)) -> plus(X1,X2) r24: activate(n__isNatKind(X)) -> isNatKind(X) r25: activate(n__s(X)) -> s(X) r26: activate(n__and(X1,X2)) -> and(X1,X2) r27: 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 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isNat#_A(x1) = ((0,0),(1,0)) x1 + (4,1) n__s_A(x1) = ((1,0),(0,0)) x1 + (22,0) U21#_A(x1,x2) = ((0,0),(1,0)) x2 + (4,2) isNatKind_A(x1) = ((1,0),(0,0)) x1 + (5,15) activate_A(x1) = ((1,0),(1,1)) x1 + (0,3) tt_A() = (0,0) U13_A(x1) = (1,7) U12_A(x1,x2) = (2,6) isNat_A(x1) = (4,5) U22_A(x1) = (1,0) U11_A(x1,x2,x3) = (3,2) U21_A(x1,x2) = (2,4) U31_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (1,5) U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + x3 + (30,7) s_A(x1) = ((1,0),(0,0)) x1 + (22,6) plus_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (8,10) n__0_A() = (0,7) n__plus_A(x1,x2) = x1 + x2 + (8,4) and_A(x1,x2) = ((1,0),(0,0)) x2 + (8,15) n__isNatKind_A(x1) = ((1,0),(0,0)) x1 + (5,7) |0|_A() = (0,8) n__and_A(x1,x2) = ((1,0),(0,0)) x2 + (8,5) precedence: U31 > isNat# = n__s = U21# = activate = U13 = s = n__0 = |0| > isNatKind = tt = isNat = U22 = U21 = n__isNatKind > and > U41 = plus = n__and > U12 = U11 = n__plus partial status: pi(isNat#) = [] pi(n__s) = [] pi(U21#) = [] pi(isNatKind) = [] pi(activate) = [] pi(tt) = [] pi(U13) = [] pi(U12) = [] pi(isNat) = [] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [2] pi(U41) = [3] pi(s) = [] pi(plus) = [1, 2] pi(n__0) = [] pi(n__plus) = [] pi(and) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: isNat#_A(x1) = (1,1) n__s_A(x1) = (5,0) U21#_A(x1,x2) = (0,0) isNatKind_A(x1) = (10,3) activate_A(x1) = (9,4) tt_A() = (2,2) U13_A(x1) = (0,0) U12_A(x1,x2) = (0,0) isNat_A(x1) = (11,0) U22_A(x1) = (3,0) U11_A(x1,x2,x3) = (0,0) U21_A(x1,x2) = (4,0) U31_A(x1,x2) = ((0,0),(1,0)) x2 + (10,5) U41_A(x1,x2,x3) = (7,1) s_A(x1) = (6,3) plus_A(x1,x2) = (8,3) n__0_A() = (3,0) n__plus_A(x1,x2) = (1,0) and_A(x1,x2) = (10,5) n__isNatKind_A(x1) = (0,0) |0|_A() = (3,0) n__and_A(x1,x2) = (0,0) precedence: n__and > plus = n__isNatKind > U31 > isNat# = activate = n__plus > U21# > U41 > isNat = U21 = s = n__0 = |0| > U22 > n__s > U11 > U12 > tt > isNatKind > and > U13 partial status: pi(isNat#) = [] pi(n__s) = [] pi(U21#) = [] pi(isNatKind) = [] pi(activate) = [] pi(tt) = [] pi(U13) = [] pi(U12) = [] pi(isNat) = [] pi(U22) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(s) = [] pi(plus) = [] pi(n__0) = [] pi(n__plus) = [] pi(and) = [] pi(n__isNatKind) = [] pi(|0|) = [] pi(n__and) = [] 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)) -> 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(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: activate(n__0()) -> |0|() r23: activate(n__plus(X1,X2)) -> plus(X1,X2) r24: activate(n__isNatKind(X)) -> isNatKind(X) r25: activate(n__s(X)) -> s(X) r26: activate(n__and(X1,X2)) -> and(X1,X2) r27: activate(X) -> X The estimated dependency graph contains the following SCCs: (no SCCs)