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