YES We show the termination of the TRS R: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) a__U12(tt(),V2) -> a__U13(a__isNat(V2)) a__U13(tt()) -> tt() a__U21(tt(),V1) -> a__U22(a__isNat(V1)) a__U22(tt()) -> tt() a__U31(tt(),N) -> mark(N) a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) a__and(tt(),X) -> mark(X) a__isNat(|0|()) -> tt() a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) a__isNatKind(|0|()) -> tt() a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) a__isNatKind(s(V1)) -> a__isNatKind(V1) a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) mark(U12(X1,X2)) -> a__U12(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(U13(X)) -> a__U13(mark(X)) mark(U21(X1,X2)) -> a__U21(mark(X1),X2) mark(U22(X)) -> a__U22(mark(X)) mark(U31(X1,X2)) -> a__U31(mark(X1),X2) mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) mark(and(X1,X2)) -> a__and(mark(X1),X2) mark(isNatKind(X)) -> a__isNatKind(X) mark(tt()) -> tt() mark(s(X)) -> s(mark(X)) mark(|0|()) -> |0|() a__U11(X1,X2,X3) -> U11(X1,X2,X3) a__U12(X1,X2) -> U12(X1,X2) a__isNat(X) -> isNat(X) a__U13(X) -> U13(X) a__U21(X1,X2) -> U21(X1,X2) a__U22(X) -> U22(X) a__U31(X1,X2) -> U31(X1,X2) a__U41(X1,X2,X3) -> U41(X1,X2,X3) a__plus(X1,X2) -> plus(X1,X2) a__and(X1,X2) -> and(X1,X2) a__isNatKind(X) -> isNatKind(X) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__U12#(tt(),V2) -> a__U13#(a__isNat(V2)) p4: a__U12#(tt(),V2) -> a__isNat#(V2) p5: a__U21#(tt(),V1) -> a__U22#(a__isNat(V1)) p6: a__U21#(tt(),V1) -> a__isNat#(V1) p7: a__U31#(tt(),N) -> mark#(N) p8: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p9: a__U41#(tt(),M,N) -> mark#(N) p10: a__U41#(tt(),M,N) -> mark#(M) p11: a__and#(tt(),X) -> mark#(X) p12: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p13: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p14: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p15: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p16: a__isNat#(s(V1)) -> a__isNatKind#(V1) p17: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p18: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p20: a__plus#(N,|0|()) -> a__U31#(a__and(a__isNat(N),isNatKind(N)),N) p21: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p22: a__plus#(N,|0|()) -> a__isNat#(N) p23: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p24: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p25: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p26: a__plus#(N,s(M)) -> a__isNat#(M) p27: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p28: mark#(U11(X1,X2,X3)) -> mark#(X1) p29: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p30: mark#(U12(X1,X2)) -> mark#(X1) p31: mark#(isNat(X)) -> a__isNat#(X) p32: mark#(U13(X)) -> a__U13#(mark(X)) p33: mark#(U13(X)) -> mark#(X) p34: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p35: mark#(U21(X1,X2)) -> mark#(X1) p36: mark#(U22(X)) -> a__U22#(mark(X)) p37: mark#(U22(X)) -> mark#(X) p38: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p39: mark#(U31(X1,X2)) -> mark#(X1) p40: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p41: mark#(U41(X1,X2,X3)) -> mark#(X1) p42: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p43: mark#(plus(X1,X2)) -> mark#(X1) p44: mark#(plus(X1,X2)) -> mark#(X2) p45: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p46: mark#(and(X1,X2)) -> mark#(X1) p47: mark#(isNatKind(X)) -> a__isNatKind#(X) p48: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p4, 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, p33, p34, p35, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46, p47, p48} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p25: a__U41#(tt(),M,N) -> mark#(M) p26: mark#(U41(X1,X2,X3)) -> mark#(X1) p27: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p28: a__U41#(tt(),M,N) -> mark#(N) p29: mark#(U31(X1,X2)) -> mark#(X1) p30: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p31: a__U31#(tt(),N) -> mark#(N) p32: mark#(U22(X)) -> mark#(X) p33: mark#(U21(X1,X2)) -> mark#(X1) p34: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p35: mark#(U13(X)) -> mark#(X) p36: mark#(isNat(X)) -> a__isNat#(X) p37: mark#(U12(X1,X2)) -> mark#(X1) p38: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p39: mark#(U11(X1,X2,X3)) -> mark#(X1) p40: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p41: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p42: a__plus#(N,|0|()) -> a__isNat#(N) p43: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p44: a__plus#(N,|0|()) -> a__U31#(a__and(a__isNat(N),isNatKind(N)),N) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = (11,8) tt_A() = (0,0) a__U12#_A(x1,x2) = (11,8) a__isNat_A(x1) = (0,11) a__isNat#_A(x1) = (11,8) s_A(x1) = ((1,0),(0,0)) x1 + (14,31) a__isNatKind#_A(x1) = (11,8) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (10,44) a__and#_A(x1,x2) = ((1,0),(0,0)) x2 + (11,8) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,1) isNatKind_A(x1) = ((0,0),(1,0)) x1 mark#_A(x1) = ((1,0),(0,0)) x1 + (11,8) and_A(x1,x2) = x1 + x2 + (0,9) mark_A(x1) = x1 + (0,6) a__plus#_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (13,1) a__U21#_A(x1,x2) = (11,8) a__and_A(x1,x2) = x1 + x2 + (0,9) isNat_A(x1) = (0,9) a__U41#_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (14,46) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (24,47) U31_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + (10,2) a__U31#_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (12,9) U22_A(x1) = ((1,0),(0,0)) x1 + (0,1) U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,1) U13_A(x1) = ((1,0),(0,0)) x1 + (0,1) U12_A(x1,x2) = ((1,0),(0,0)) x1 + (0,7) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,5) |0|_A() = (0,30) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,11) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + (0,10) a__U13_A(x1) = ((1,0),(0,0)) x1 + (0,2) a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,3) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,2) a__U31_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + (10,7) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (24,48) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (10,49) precedence: s > a__isNatKind = isNatKind = U41 > a__isNat = and = mark = a__and > plus = U31 = a__U31 = a__U41 = a__plus > a__U11# = a__U12# = a__isNat# = a__isNatKind# = a__and# = mark# = a__plus# = a__U21# = a__U41# = a__U31# > isNat > U13 = a__U13 > U11 = a__U11 > U12 = a__U12 > tt = U22 = |0| = a__U21 = a__U22 > U21 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(s) = [] pi(a__isNatKind#) = [] pi(plus) = [] pi(a__and#) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(mark#) = [] pi(and) = [1, 2] pi(mark) = [1] pi(a__plus#) = [] pi(a__U21#) = [] pi(a__and) = [1, 2] pi(isNat) = [] pi(a__U41#) = [] pi(U41) = [] pi(U31) = [] pi(a__U31#) = [] pi(U22) = [] pi(U21) = [] pi(U13) = [] pi(U12) = [] pi(U11) = [] pi(|0|) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] The next rules are strictly ordered: p44 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p25: a__U41#(tt(),M,N) -> mark#(M) p26: mark#(U41(X1,X2,X3)) -> mark#(X1) p27: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p28: a__U41#(tt(),M,N) -> mark#(N) p29: mark#(U31(X1,X2)) -> mark#(X1) p30: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p31: a__U31#(tt(),N) -> mark#(N) p32: mark#(U22(X)) -> mark#(X) p33: mark#(U21(X1,X2)) -> mark#(X1) p34: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p35: mark#(U13(X)) -> mark#(X) p36: mark#(isNat(X)) -> a__isNat#(X) p37: mark#(U12(X1,X2)) -> mark#(X1) p38: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p39: mark#(U11(X1,X2,X3)) -> mark#(X1) p40: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p41: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p42: a__plus#(N,|0|()) -> a__isNat#(N) p43: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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, p38, p39, p40, p41, p42, p43} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p10: mark#(U12(X1,X2)) -> mark#(X1) p11: mark#(isNat(X)) -> a__isNat#(X) p12: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p13: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p14: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p15: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(s(V1)) -> a__isNatKind#(V1) p19: mark#(U13(X)) -> mark#(X) p20: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p21: mark#(U21(X1,X2)) -> mark#(X1) p22: mark#(U22(X)) -> mark#(X) p23: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p24: a__U31#(tt(),N) -> mark#(N) p25: mark#(U31(X1,X2)) -> mark#(X1) p26: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p27: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p28: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p29: a__plus#(N,|0|()) -> a__isNat#(N) p30: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p31: a__U41#(tt(),M,N) -> mark#(N) p32: mark#(U41(X1,X2,X3)) -> mark#(X1) p33: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p34: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p35: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p36: a__plus#(N,s(M)) -> a__isNat#(M) p37: mark#(plus(X1,X2)) -> mark#(X1) p38: mark#(plus(X1,X2)) -> mark#(X2) p39: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p40: mark#(and(X1,X2)) -> mark#(X1) p41: mark#(isNatKind(X)) -> a__isNatKind#(X) p42: mark#(s(X)) -> mark#(X) p43: a__U41#(tt(),M,N) -> mark#(M) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = (6,2) tt_A() = (0,13) a__U12#_A(x1,x2) = (6,2) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,9) a__isNat#_A(x1) = (6,2) plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + (7,0) a__and_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (0,17) a__isNatKind_A(x1) = (0,17) isNatKind_A(x1) = (0,0) a__and#_A(x1,x2) = ((1,0),(0,0)) x2 + (6,2) mark#_A(x1) = ((1,0),(0,0)) x1 + (6,2) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 mark_A(x1) = ((1,0),(1,1)) x1 + (0,17) U12_A(x1,x2) = x1 + (0,3) isNat_A(x1) = ((0,0),(1,0)) x1 a__isNatKind#_A(x1) = (6,2) s_A(x1) = ((1,0),(0,0)) x1 + (7,0) a__U21#_A(x1,x2) = (6,2) U13_A(x1) = ((1,0),(0,0)) x1 U21_A(x1,x2) = ((1,0),(0,0)) x1 U22_A(x1) = ((1,0),(0,0)) x1 + (0,14) U31_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + (7,0) a__U31#_A(x1,x2) = ((1,0),(1,1)) x2 + (8,3) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (14,12) a__U41#_A(x1,x2,x3) = ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + (8,7) a__plus#_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (2,1) |0|_A() = (5,0) and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,1) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,13) a__U12_A(x1,x2) = x1 + (0,3) a__U13_A(x1) = ((1,0),(0,0)) x1 + (0,14) a__U21_A(x1,x2) = ((1,0),(1,0)) x1 + (0,15) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,14) a__U31_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + (7,13) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (14,13) a__plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + (7,14) precedence: a__and = a__isNatKind = mark = a__U21 = a__U22 > s > U22 > U31 = a__U31 > U21 > plus = a__plus > a__U41 > U41 > tt = a__isNat = a__U12 = a__U13 > isNat = U13 > |0| > U11 = a__U11 > a__U11# = a__U12# = a__isNat# = a__and# = mark# = U12 = a__isNatKind# = a__U21# = a__plus# > isNatKind > a__U31# = a__U41# = and partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(plus) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(a__and#) = [] pi(mark#) = [] pi(U11) = [] pi(mark) = [] pi(U12) = [] pi(isNat) = [] pi(a__isNatKind#) = [] pi(s) = [] pi(a__U21#) = [] pi(U13) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(a__U31#) = [] pi(U41) = [] pi(a__U41#) = [] pi(a__plus#) = [] pi(|0|) = [] pi(and) = [] pi(a__U11) = [] pi(a__U12) = [1] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] The next rules are strictly ordered: p43 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p10: mark#(U12(X1,X2)) -> mark#(X1) p11: mark#(isNat(X)) -> a__isNat#(X) p12: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p13: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p14: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p15: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(s(V1)) -> a__isNatKind#(V1) p19: mark#(U13(X)) -> mark#(X) p20: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p21: mark#(U21(X1,X2)) -> mark#(X1) p22: mark#(U22(X)) -> mark#(X) p23: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p24: a__U31#(tt(),N) -> mark#(N) p25: mark#(U31(X1,X2)) -> mark#(X1) p26: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p27: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p28: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p29: a__plus#(N,|0|()) -> a__isNat#(N) p30: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p31: a__U41#(tt(),M,N) -> mark#(N) p32: mark#(U41(X1,X2,X3)) -> mark#(X1) p33: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p34: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p35: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p36: a__plus#(N,s(M)) -> a__isNat#(M) p37: mark#(plus(X1,X2)) -> mark#(X1) p38: mark#(plus(X1,X2)) -> mark#(X2) p39: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p40: mark#(and(X1,X2)) -> mark#(X1) p41: mark#(isNatKind(X)) -> a__isNatKind#(X) p42: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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, p38, p39, p40, p41, p42} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p25: a__U41#(tt(),M,N) -> mark#(N) p26: mark#(U41(X1,X2,X3)) -> mark#(X1) p27: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3) p28: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p29: a__plus#(N,|0|()) -> a__isNat#(N) p30: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p31: mark#(U31(X1,X2)) -> mark#(X1) p32: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p33: a__U31#(tt(),N) -> mark#(N) p34: mark#(U22(X)) -> mark#(X) p35: mark#(U21(X1,X2)) -> mark#(X1) p36: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p37: mark#(U13(X)) -> mark#(X) p38: mark#(isNat(X)) -> a__isNat#(X) p39: mark#(U12(X1,X2)) -> mark#(X1) p40: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p41: mark#(U11(X1,X2,X3)) -> mark#(X1) p42: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = (0,4) tt_A() = (0,7) a__U12#_A(x1,x2) = (0,4) a__isNat_A(x1) = (0,11) a__isNat#_A(x1) = (0,4) s_A(x1) = ((1,0),(0,0)) x1 + (0,1) a__isNatKind#_A(x1) = (0,4) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (2,5) a__and#_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,4) a__isNatKind_A(x1) = (0,13) isNatKind_A(x1) = (0,2) mark#_A(x1) = ((1,0),(0,0)) x1 + (0,4) and_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,6) mark_A(x1) = ((1,0),(0,0)) x1 + (0,13) a__plus#_A(x1,x2) = ((1,0),(0,0)) x1 + (2,3) a__U21#_A(x1,x2) = (0,4) a__and_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,13) isNat_A(x1) = (0,7) a__U41#_A(x1,x2,x3) = ((1,0),(0,0)) x3 + (2,3) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (2,2) |0|_A() = (0,12) U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (1,1) a__U31#_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,5) U22_A(x1) = ((1,0),(0,0)) x1 + (0,3) U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,4) U13_A(x1) = ((1,0),(0,0)) x1 + (0,1) U12_A(x1,x2) = ((1,0),(0,0)) x1 + (0,5) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,5) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,10) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + (0,9) a__U13_A(x1) = ((1,0),(0,0)) x1 + (0,8) a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,9) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,8) a__U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (1,13) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (2,5) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (2,6) precedence: plus = U31 > s > a__isNat > |0| > U41 = a__U22 = a__U41 > tt > a__isNatKind = mark = a__and > U22 > U11 = a__U11 = a__U12 = a__U13 > a__U11# = a__U12# = a__isNat# = a__isNatKind# = a__and# = mark# = a__U21# = a__U31# = a__U31 = a__plus > U21 = a__U21 > isNatKind > a__plus# = a__U41# > and > isNat = U13 = U12 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(s) = [] pi(a__isNatKind#) = [] pi(plus) = [] pi(a__and#) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(mark#) = [] pi(and) = [] pi(mark) = [] pi(a__plus#) = [] pi(a__U21#) = [] pi(a__and) = [] pi(isNat) = [] pi(a__U41#) = [] pi(U41) = [] pi(|0|) = [] pi(U31) = [] pi(a__U31#) = [] pi(U22) = [] pi(U21) = [] pi(U13) = [] pi(U12) = [] pi(U11) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] The next rules are strictly ordered: p27 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p25: a__U41#(tt(),M,N) -> mark#(N) p26: mark#(U41(X1,X2,X3)) -> mark#(X1) p27: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p28: a__plus#(N,|0|()) -> a__isNat#(N) p29: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p30: mark#(U31(X1,X2)) -> mark#(X1) p31: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p32: a__U31#(tt(),N) -> mark#(N) p33: mark#(U22(X)) -> mark#(X) p34: mark#(U21(X1,X2)) -> mark#(X1) p35: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p36: mark#(U13(X)) -> mark#(X) p37: mark#(isNat(X)) -> a__isNat#(X) p38: mark#(U12(X1,X2)) -> mark#(X1) p39: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p40: mark#(U11(X1,X2,X3)) -> mark#(X1) p41: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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, p38, p39, p40, p41} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p10: mark#(U12(X1,X2)) -> mark#(X1) p11: mark#(isNat(X)) -> a__isNat#(X) p12: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p13: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p14: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p15: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(s(V1)) -> a__isNatKind#(V1) p19: mark#(U13(X)) -> mark#(X) p20: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p21: mark#(U21(X1,X2)) -> mark#(X1) p22: mark#(U22(X)) -> mark#(X) p23: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p24: a__U31#(tt(),N) -> mark#(N) p25: mark#(U31(X1,X2)) -> mark#(X1) p26: mark#(U41(X1,X2,X3)) -> mark#(X1) p27: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p28: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p29: a__plus#(N,|0|()) -> a__isNat#(N) p30: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p31: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p32: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p33: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p34: a__plus#(N,s(M)) -> a__isNat#(M) p35: a__U41#(tt(),M,N) -> mark#(N) p36: mark#(plus(X1,X2)) -> mark#(X1) p37: mark#(plus(X1,X2)) -> mark#(X2) p38: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p39: mark#(and(X1,X2)) -> mark#(X1) p40: mark#(isNatKind(X)) -> a__isNatKind#(X) p41: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = (9,5) tt_A() = (0,4) a__U12#_A(x1,x2) = (9,5) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,6) a__isNat#_A(x1) = (9,5) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (8,2) a__and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,6) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,1) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,1) a__and#_A(x1,x2) = ((1,0),(1,0)) x2 + (9,5) mark#_A(x1) = ((1,0),(1,0)) x1 + (9,5) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,10) mark_A(x1) = ((1,0),(1,1)) x1 + (0,3) U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,9) isNat_A(x1) = ((0,0),(1,0)) x1 + (0,4) a__isNatKind#_A(x1) = (9,5) s_A(x1) = x1 + (33,31) a__U21#_A(x1,x2) = (9,5) U13_A(x1) = x1 + (0,5) U21_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (0,29) U22_A(x1) = ((1,0),(0,0)) x1 + (0,6) U31_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (2,2) a__U31#_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (10,5) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (41,5) a__plus#_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (9,11) |0|_A() = (3,14) a__U41#_A(x1,x2,x3) = x1 + ((1,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (10,46) and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,6) a__U11_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,13) a__U12_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (0,12) a__U13_A(x1) = x1 + (0,5) a__U21_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (0,32) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,7) a__U31_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (2,7) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (41,45) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (8,13) precedence: mark > a__and > a__isNatKind > isNatKind > |0| > a__U12 > a__U11 > a__U21 > U11 > U21 > U22 > a__U11# = a__U12# = a__isNat# = a__and# = mark# = a__isNatKind# = a__U21# = a__U31# = a__plus# = a__U41# = and > isNat > a__isNat > tt > a__U22 = a__U41 > U31 > U12 > a__U31 > U41 > plus > s = a__U13 = a__plus > U13 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(plus) = [] pi(a__and) = [2] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(a__and#) = [] pi(mark#) = [] pi(U11) = [] pi(mark) = [] pi(U12) = [] pi(isNat) = [] pi(a__isNatKind#) = [] pi(s) = [1] pi(a__U21#) = [] pi(U13) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(a__U31#) = [] pi(U41) = [] pi(a__plus#) = [] pi(|0|) = [] pi(a__U41#) = [] pi(and) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [1] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] The next rules are strictly ordered: p35 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p10: mark#(U12(X1,X2)) -> mark#(X1) p11: mark#(isNat(X)) -> a__isNat#(X) p12: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p13: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p14: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p15: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(s(V1)) -> a__isNatKind#(V1) p19: mark#(U13(X)) -> mark#(X) p20: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p21: mark#(U21(X1,X2)) -> mark#(X1) p22: mark#(U22(X)) -> mark#(X) p23: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p24: a__U31#(tt(),N) -> mark#(N) p25: mark#(U31(X1,X2)) -> mark#(X1) p26: mark#(U41(X1,X2,X3)) -> mark#(X1) p27: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p28: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p29: a__plus#(N,|0|()) -> a__isNat#(N) p30: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p31: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p32: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p33: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p34: a__plus#(N,s(M)) -> a__isNat#(M) p35: mark#(plus(X1,X2)) -> mark#(X1) p36: mark#(plus(X1,X2)) -> mark#(X2) p37: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p38: mark#(and(X1,X2)) -> mark#(X1) p39: mark#(isNatKind(X)) -> a__isNatKind#(X) p40: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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, p38, p39, p40} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p25: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p26: a__plus#(N,|0|()) -> a__isNat#(N) p27: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p28: mark#(U41(X1,X2,X3)) -> mark#(X1) p29: mark#(U31(X1,X2)) -> mark#(X1) p30: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p31: a__U31#(tt(),N) -> mark#(N) p32: mark#(U22(X)) -> mark#(X) p33: mark#(U21(X1,X2)) -> mark#(X1) p34: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p35: mark#(U13(X)) -> mark#(X) p36: mark#(isNat(X)) -> a__isNat#(X) p37: mark#(U12(X1,X2)) -> mark#(X1) p38: mark#(U12(X1,X2)) -> a__U12#(mark(X1),X2) p39: mark#(U11(X1,X2,X3)) -> mark#(X1) p40: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = x1 + (6,1) tt_A() = (0,28) a__U12#_A(x1,x2) = (6,29) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,21) a__isNat#_A(x1) = (6,29) s_A(x1) = ((1,0),(0,0)) x1 + (18,30) a__isNatKind#_A(x1) = (6,20) plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (26,0) a__and#_A(x1,x2) = ((1,0),(1,1)) x2 + (6,20) a__isNatKind_A(x1) = (0,28) isNatKind_A(x1) = (0,0) mark#_A(x1) = x1 + (6,20) and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 mark_A(x1) = x1 + (0,28) a__plus#_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (17,23) a__U21#_A(x1,x2) = (6,29) a__and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 isNat_A(x1) = ((0,0),(1,0)) x1 + (0,20) a__U41#_A(x1,x2,x3) = ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (17,24) |0|_A() = (7,44) U41_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (44,3) U31_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,22) a__U31#_A(x1,x2) = x2 + (6,21) U22_A(x1) = x1 + (0,1) U21_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,10) U13_A(x1) = ((1,0),(1,1)) x1 + (0,29) U12_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,25) U11_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,19) a__U11_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,19) a__U12_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,25) a__U13_A(x1) = ((1,0),(1,1)) x1 + (0,29) a__U21_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,10) a__U22_A(x1) = x1 + (0,1) a__U31_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,22) a__U41_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (44,3) a__plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (26,27) precedence: a__isNatKind# = a__and# = mark# = a__plus# = a__U41# = a__U31# > s = a__isNatKind = and = mark = a__and > a__U11# = a__U12# = a__isNat# = a__U21# > U22 = a__U22 > a__U31 = a__plus > isNatKind > a__isNat = isNat = U11 = a__U11 = a__U12 = a__U21 > a__U41 > U41 > |0| > tt > U21 > a__U13 > U13 > U31 > U12 > plus partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(s) = [] pi(a__isNatKind#) = [] pi(plus) = [] pi(a__and#) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(mark#) = [] pi(and) = [] pi(mark) = [] pi(a__plus#) = [] pi(a__U21#) = [] pi(a__and) = [] pi(isNat) = [] pi(a__U41#) = [] pi(|0|) = [] pi(U41) = [] pi(U31) = [] pi(a__U31#) = [] pi(U22) = [] pi(U21) = [] pi(U13) = [1] pi(U12) = [1] pi(U11) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [1] pi(a__U31) = [] pi(a__U41) = [1] pi(a__plus) = [] The next rules are strictly ordered: p38 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p25: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p26: a__plus#(N,|0|()) -> a__isNat#(N) p27: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p28: mark#(U41(X1,X2,X3)) -> mark#(X1) p29: mark#(U31(X1,X2)) -> mark#(X1) p30: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p31: a__U31#(tt(),N) -> mark#(N) p32: mark#(U22(X)) -> mark#(X) p33: mark#(U21(X1,X2)) -> mark#(X1) p34: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p35: mark#(U13(X)) -> mark#(X) p36: mark#(isNat(X)) -> a__isNat#(X) p37: mark#(U12(X1,X2)) -> mark#(X1) p38: mark#(U11(X1,X2,X3)) -> mark#(X1) p39: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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, p38, p39} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> mark#(X1) p10: mark#(isNat(X)) -> a__isNat#(X) p11: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p12: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p13: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p14: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p15: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(s(V1)) -> a__isNatKind#(V1) p18: mark#(U13(X)) -> mark#(X) p19: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p20: mark#(U21(X1,X2)) -> mark#(X1) p21: mark#(U22(X)) -> mark#(X) p22: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p23: a__U31#(tt(),N) -> mark#(N) p24: mark#(U31(X1,X2)) -> mark#(X1) p25: mark#(U41(X1,X2,X3)) -> mark#(X1) p26: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p27: a__plus#(N,|0|()) -> a__and#(a__isNat(N),isNatKind(N)) p28: a__plus#(N,|0|()) -> a__isNat#(N) p29: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p30: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p31: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p32: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p33: a__plus#(N,s(M)) -> a__isNat#(M) p34: mark#(plus(X1,X2)) -> mark#(X1) p35: mark#(plus(X1,X2)) -> mark#(X2) p36: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p37: mark#(and(X1,X2)) -> mark#(X1) p38: mark#(isNatKind(X)) -> a__isNatKind#(X) p39: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = (0,33) tt_A() = (0,29) a__U12#_A(x1,x2) = (0,33) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,3) a__isNat#_A(x1) = (0,33) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (9,3) a__and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,4) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,34) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,4) a__and#_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,33) mark#_A(x1) = ((1,0),(0,0)) x1 + (0,33) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,1) mark_A(x1) = ((1,0),(1,1)) x1 + (0,32) U12_A(x1,x2) = x1 + (0,7) isNat_A(x1) = ((0,0),(1,0)) x1 + (0,2) a__isNatKind#_A(x1) = (0,33) s_A(x1) = ((1,0),(0,0)) x1 + (29,1) a__U21#_A(x1,x2) = (0,33) U13_A(x1) = ((1,0),(0,0)) x1 + (0,1) U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,1) U22_A(x1) = ((1,0),(0,0)) x1 + (0,28) U31_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (2,1) a__U31#_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (1,2) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (38,32) a__plus#_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (8,2) |0|_A() = (27,3) a__U41#_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + x3 + (9,6) and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,4) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,11) a__U12_A(x1,x2) = x1 + (0,7) a__U13_A(x1) = ((1,0),(0,0)) x1 + (0,29) a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,30) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,29) a__U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (2,3) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (38,33) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (9,28) precedence: a__U11# = a__U12# = a__isNat# = a__and# = mark# = a__isNatKind# = a__U21# = a__U31# = a__plus# = a__U41# > U21 > a__isNatKind > a__isNat = a__and = mark = s = U22 = U31 = U41 = |0| = a__U21 = a__U22 = a__U31 = a__U41 = a__plus > isNat > and > plus > U11 = a__U11 > isNatKind = U12 = a__U12 > tt = U13 = a__U13 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(plus) = [] pi(a__and) = [2] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(a__and#) = [] pi(mark#) = [] pi(U11) = [] pi(mark) = [1] pi(U12) = [1] pi(isNat) = [] pi(a__isNatKind#) = [] pi(s) = [] pi(a__U21#) = [] pi(U13) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(a__U31#) = [] pi(U41) = [] pi(a__plus#) = [] pi(|0|) = [] pi(a__U41#) = [] pi(and) = [] pi(a__U11) = [] pi(a__U12) = [1] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [2] pi(a__U41) = [] pi(a__plus) = [] The next rules are strictly ordered: p27 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> mark#(X1) p10: mark#(isNat(X)) -> a__isNat#(X) p11: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p12: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p13: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p14: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p15: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(s(V1)) -> a__isNatKind#(V1) p18: mark#(U13(X)) -> mark#(X) p19: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p20: mark#(U21(X1,X2)) -> mark#(X1) p21: mark#(U22(X)) -> mark#(X) p22: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p23: a__U31#(tt(),N) -> mark#(N) p24: mark#(U31(X1,X2)) -> mark#(X1) p25: mark#(U41(X1,X2,X3)) -> mark#(X1) p26: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p27: a__plus#(N,|0|()) -> a__isNat#(N) p28: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p29: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p30: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p31: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p32: a__plus#(N,s(M)) -> a__isNat#(M) p33: mark#(plus(X1,X2)) -> mark#(X1) p34: mark#(plus(X1,X2)) -> mark#(X2) p35: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p36: mark#(and(X1,X2)) -> mark#(X1) p37: mark#(isNatKind(X)) -> a__isNatKind#(X) p38: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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, p38} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__plus#(N,s(M)) -> a__U41#(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) p25: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p26: a__plus#(N,|0|()) -> a__isNat#(N) p27: mark#(U41(X1,X2,X3)) -> mark#(X1) p28: mark#(U31(X1,X2)) -> mark#(X1) p29: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p30: a__U31#(tt(),N) -> mark#(N) p31: mark#(U22(X)) -> mark#(X) p32: mark#(U21(X1,X2)) -> mark#(X1) p33: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p34: mark#(U13(X)) -> mark#(X) p35: mark#(isNat(X)) -> a__isNat#(X) p36: mark#(U12(X1,X2)) -> mark#(X1) p37: mark#(U11(X1,X2,X3)) -> mark#(X1) p38: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = (41,35) tt_A() = (0,0) a__U12#_A(x1,x2) = (41,35) a__isNat_A(x1) = (0,8) a__isNat#_A(x1) = (41,35) s_A(x1) = x1 + (44,33) a__isNatKind#_A(x1) = (41,35) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (40,1) a__and#_A(x1,x2) = ((1,0),(0,0)) x2 + (41,35) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,34) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,34) mark#_A(x1) = ((1,0),(0,0)) x1 + (41,35) and_A(x1,x2) = x1 + x2 + (0,5) mark_A(x1) = x1 + (0,4) a__plus#_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (42,23) a__U21#_A(x1,x2) = (41,35) a__and_A(x1,x2) = x1 + x2 + (0,5) isNat_A(x1) = (0,8) a__U41#_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (43,32) |0|_A() = (0,53) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (84,33) U31_A(x1,x2) = x1 + x2 + (0,5) a__U31#_A(x1,x2) = ((1,0),(0,0)) x2 + (41,35) U22_A(x1) = ((1,0),(0,0)) x1 U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,3) U13_A(x1) = ((1,0),(0,0)) x1 U12_A(x1,x2) = ((1,0),(0,0)) x1 + (0,1) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,3) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,3) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + (0,2) a__U13_A(x1) = ((1,0),(0,0)) x1 a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,6) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,4) a__U31_A(x1,x2) = x1 + x2 + (0,5) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (84,36) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (40,2) precedence: plus = U21 > a__plus# = a__U41# > tt = U11 = a__U11 = a__U12 = a__U13 > a__isNatKind = isNatKind > a__isNat = isNat = a__U21 > mark > U13 > a__and = U12 > a__plus > and > a__U11# = a__U12# = a__isNat# = s = a__isNatKind# = a__and# = mark# = a__U21# = |0| = U41 = U31 = a__U31# = U22 = a__U22 = a__U31 = a__U41 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(s) = [] pi(a__isNatKind#) = [] pi(plus) = [] pi(a__and#) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(mark#) = [] pi(and) = [2] pi(mark) = [1] pi(a__plus#) = [] pi(a__U21#) = [] pi(a__and) = [] pi(isNat) = [] pi(a__U41#) = [3] pi(|0|) = [] pi(U41) = [] pi(U31) = [] pi(a__U31#) = [] pi(U22) = [] pi(U21) = [] pi(U13) = [] pi(U12) = [] pi(U11) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] The next rules are strictly ordered: p24 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__U41#(tt(),M,N) -> a__plus#(mark(N),mark(M)) p25: a__plus#(N,|0|()) -> a__isNat#(N) p26: mark#(U41(X1,X2,X3)) -> mark#(X1) p27: mark#(U31(X1,X2)) -> mark#(X1) p28: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p29: a__U31#(tt(),N) -> mark#(N) p30: mark#(U22(X)) -> mark#(X) p31: mark#(U21(X1,X2)) -> mark#(X1) p32: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p33: mark#(U13(X)) -> mark#(X) p34: mark#(isNat(X)) -> a__isNat#(X) p35: mark#(U12(X1,X2)) -> mark#(X1) p36: mark#(U11(X1,X2,X3)) -> mark#(X1) p37: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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, 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: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> mark#(X1) p10: mark#(isNat(X)) -> a__isNat#(X) p11: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p12: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p13: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p14: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p15: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(s(V1)) -> a__isNatKind#(V1) p18: mark#(U13(X)) -> mark#(X) p19: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p20: mark#(U21(X1,X2)) -> mark#(X1) p21: mark#(U22(X)) -> mark#(X) p22: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p23: a__U31#(tt(),N) -> mark#(N) p24: mark#(U31(X1,X2)) -> mark#(X1) p25: mark#(U41(X1,X2,X3)) -> mark#(X1) p26: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p27: a__plus#(N,|0|()) -> a__isNat#(N) p28: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p29: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p30: a__plus#(N,s(M)) -> a__isNat#(M) p31: mark#(plus(X1,X2)) -> mark#(X1) p32: mark#(plus(X1,X2)) -> mark#(X2) p33: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p34: mark#(and(X1,X2)) -> mark#(X1) p35: mark#(isNatKind(X)) -> a__isNatKind#(X) p36: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = (0,8) tt_A() = (0,8) a__U12#_A(x1,x2) = ((1,0),(0,0)) x1 + (0,8) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,8) a__isNat#_A(x1) = (0,8) plus_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (7,13) a__and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,11) a__isNatKind_A(x1) = (0,16) isNatKind_A(x1) = (0,5) a__and#_A(x1,x2) = ((0,0),(1,0)) x2 + (0,8) mark#_A(x1) = ((0,0),(1,0)) x1 + (0,8) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,3) mark_A(x1) = x1 + (0,11) U12_A(x1,x2) = ((1,0),(1,0)) x1 + (0,14) isNat_A(x1) = ((0,0),(1,0)) x1 + (0,1) a__isNatKind#_A(x1) = (0,8) s_A(x1) = ((1,0),(0,0)) x1 + (3,7) a__U21#_A(x1,x2) = (0,8) U13_A(x1) = ((1,0),(0,0)) x1 + (0,1) U21_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,10) U22_A(x1) = x1 + (0,1) U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (4,1) a__U31#_A(x1,x2) = ((0,0),(1,0)) x2 + (0,9) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (10,1) a__plus#_A(x1,x2) = (0,14) |0|_A() = (0,8) and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,1) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,14) a__U12_A(x1,x2) = ((1,0),(1,0)) x1 + (0,14) a__U13_A(x1) = ((1,0),(0,0)) x1 + (0,12) a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,10) a__U22_A(x1) = x1 + (0,1) a__U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (4,12) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (10,8) a__plus_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (7,13) precedence: a__plus# > a__U11# = a__U12# = a__isNat# = a__and# = mark# = a__isNatKind# = a__U21# = a__U31# > isNatKind > a__isNat = plus = a__and = a__isNatKind = U11 = mark = isNat = s = U31 = U41 = |0| = and = a__U11 = a__U31 = a__U41 = a__plus > tt = U13 = U21 = U22 = a__U13 = a__U21 = a__U22 > U12 = a__U12 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(plus) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(a__and#) = [] pi(mark#) = [] pi(U11) = [] pi(mark) = [] pi(U12) = [] pi(isNat) = [] pi(a__isNatKind#) = [] pi(s) = [] pi(a__U21#) = [] pi(U13) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(a__U31#) = [] pi(U41) = [] pi(a__plus#) = [] pi(|0|) = [] pi(and) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] The next rules are strictly ordered: p25 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> mark#(X1) p10: mark#(isNat(X)) -> a__isNat#(X) p11: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p12: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p13: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p14: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p15: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(s(V1)) -> a__isNatKind#(V1) p18: mark#(U13(X)) -> mark#(X) p19: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p20: mark#(U21(X1,X2)) -> mark#(X1) p21: mark#(U22(X)) -> mark#(X) p22: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p23: a__U31#(tt(),N) -> mark#(N) p24: mark#(U31(X1,X2)) -> mark#(X1) p25: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p26: a__plus#(N,|0|()) -> a__isNat#(N) p27: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p28: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p29: a__plus#(N,s(M)) -> a__isNat#(M) p30: mark#(plus(X1,X2)) -> mark#(X1) p31: mark#(plus(X1,X2)) -> mark#(X2) p32: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p33: mark#(and(X1,X2)) -> mark#(X1) p34: mark#(isNatKind(X)) -> a__isNatKind#(X) p35: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__isNat(M),isNatKind(M)) p23: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p24: a__plus#(N,|0|()) -> a__isNat#(N) p25: mark#(U31(X1,X2)) -> mark#(X1) p26: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p27: a__U31#(tt(),N) -> mark#(N) p28: mark#(U22(X)) -> mark#(X) p29: mark#(U21(X1,X2)) -> mark#(X1) p30: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p31: mark#(U13(X)) -> mark#(X) p32: mark#(isNat(X)) -> a__isNat#(X) p33: mark#(U12(X1,X2)) -> mark#(X1) p34: mark#(U11(X1,X2,X3)) -> mark#(X1) p35: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (2,29) tt_A() = (0,30) a__U12#_A(x1,x2) = (2,29) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,21) a__isNat#_A(x1) = (2,29) s_A(x1) = ((1,0),(0,0)) x1 + (12,17) a__isNatKind#_A(x1) = (2,29) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (33,17) a__and#_A(x1,x2) = ((1,0),(0,0)) x2 + (2,29) a__isNatKind_A(x1) = (0,34) isNatKind_A(x1) = (0,16) mark#_A(x1) = ((1,0),(0,0)) x1 + (2,29) and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,3) mark_A(x1) = x1 + (0,18) a__plus#_A(x1,x2) = ((0,0),(1,0)) x2 + (34,18) a__U21#_A(x1,x2) = (2,29) a__and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,18) isNat_A(x1) = ((0,0),(1,0)) x1 + (0,19) |0|_A() = (10,18) U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (11,1) a__U31#_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (3,30) U22_A(x1) = x1 + (0,1) U21_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,15) U13_A(x1) = ((1,0),(0,0)) x1 + (0,19) U12_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,8) U11_A(x1,x2,x3) = x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,19) a__U11_A(x1,x2,x3) = x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,19) a__U12_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,8) a__U13_A(x1) = ((1,0),(0,0)) x1 + (0,37) a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,32) a__U22_A(x1) = x1 + (0,1) a__U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (11,19) a__U41_A(x1,x2,x3) = ((0,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (45,19) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (33,20) U41_A(x1,x2,x3) = ((0,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (45,2) precedence: a__U11# = a__U12# = a__isNat# = s = a__isNatKind# = a__and# = isNatKind = mark# = a__plus# = a__U21# = |0| = a__U41 = U41 > plus > U21 > tt > a__isNatKind = mark = a__and = U13 = a__U11 = a__U12 = a__U13 = a__U21 = a__U22 > U31 = a__U31# = a__U31 > a__plus > a__isNat > isNat = U22 > and > U11 > U12 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(s) = [] pi(a__isNatKind#) = [] pi(plus) = [] pi(a__and#) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(mark#) = [] pi(and) = [2] pi(mark) = [] pi(a__plus#) = [] pi(a__U21#) = [] pi(a__and) = [] pi(isNat) = [] pi(|0|) = [] pi(U31) = [] pi(a__U31#) = [] pi(U22) = [] pi(U21) = [] pi(U13) = [] pi(U12) = [1] pi(U11) = [1] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(U41) = [] 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: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p21: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p22: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p23: a__plus#(N,|0|()) -> a__isNat#(N) p24: mark#(U31(X1,X2)) -> mark#(X1) p25: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p26: a__U31#(tt(),N) -> mark#(N) p27: mark#(U22(X)) -> mark#(X) p28: mark#(U21(X1,X2)) -> mark#(X1) p29: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p30: mark#(U13(X)) -> mark#(X) p31: mark#(isNat(X)) -> a__isNat#(X) p32: mark#(U12(X1,X2)) -> mark#(X1) p33: mark#(U11(X1,X2,X3)) -> mark#(X1) p34: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> mark#(X1) p10: mark#(isNat(X)) -> a__isNat#(X) p11: a__isNat#(plus(V1,V2)) -> a__isNatKind#(V1) p12: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p13: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p14: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p15: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(s(V1)) -> a__isNatKind#(V1) p18: mark#(U13(X)) -> mark#(X) p19: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p20: mark#(U21(X1,X2)) -> mark#(X1) p21: mark#(U22(X)) -> mark#(X) p22: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p23: a__U31#(tt(),N) -> mark#(N) p24: mark#(U31(X1,X2)) -> mark#(X1) p25: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p26: a__plus#(N,|0|()) -> a__isNat#(N) p27: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p28: a__plus#(N,s(M)) -> a__isNat#(M) p29: mark#(plus(X1,X2)) -> mark#(X1) p30: mark#(plus(X1,X2)) -> mark#(X2) p31: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p32: mark#(and(X1,X2)) -> mark#(X1) p33: mark#(isNatKind(X)) -> a__isNatKind#(X) p34: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,2) tt_A() = (0,4) a__U12#_A(x1,x2) = ((0,0),(1,0)) x2 + (0,1) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,3) a__isNat#_A(x1) = ((0,0),(1,0)) x1 plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (7,10) a__and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 a__isNatKind_A(x1) = (0,4) isNatKind_A(x1) = (0,0) a__and#_A(x1,x2) = ((1,0),(1,1)) x2 mark#_A(x1) = x1 U11_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,5) mark_A(x1) = x1 + (0,4) U12_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,4) isNat_A(x1) = ((0,0),(1,0)) x1 + (0,2) a__isNatKind#_A(x1) = (0,0) s_A(x1) = x1 + (6,2) a__U21#_A(x1,x2) = ((0,0),(1,0)) x2 + (0,2) U13_A(x1) = x1 + (0,4) U21_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,5) U22_A(x1) = x1 + (0,2) U31_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (3,15) a__U31#_A(x1,x2) = x2 + (1,1) a__plus#_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (6,1) |0|_A() = (2,5) and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 a__U11_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,5) a__U12_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,4) a__U13_A(x1) = x1 + (0,4) a__U21_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,5) a__U22_A(x1) = x1 + (0,2) a__U31_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (3,18) a__U41_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(1,0)) x3 + (13,17) a__plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (7,10) U41_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(1,0)) x3 + (13,14) precedence: a__and = a__isNatKind = mark = U31 = a__U22 = a__U31 > tt > a__U11# = a__U12# = a__isNat = a__U11 > a__U12 > U13 = a__U13 > U22 > U12 > U41 > a__plus# > a__isNat# > a__U31# = |0| = a__U41 = a__plus > s > isNatKind = a__and# = mark# = a__isNatKind# = and > a__U21# > U21 = a__U21 > isNat > plus = U11 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(plus) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(a__and#) = [] pi(mark#) = [] pi(U11) = [] pi(mark) = [] pi(U12) = [] pi(isNat) = [] pi(a__isNatKind#) = [] pi(s) = [] pi(a__U21#) = [] pi(U13) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(a__U31#) = [2] pi(a__plus#) = [2] pi(|0|) = [] pi(and) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [1] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(U41) = [2] The next rules are strictly ordered: p11 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> mark#(X1) p10: mark#(isNat(X)) -> a__isNat#(X) p11: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p12: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p13: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p14: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p15: a__U21#(tt(),V1) -> a__isNat#(V1) p16: a__isNat#(s(V1)) -> a__isNatKind#(V1) p17: mark#(U13(X)) -> mark#(X) p18: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p19: mark#(U21(X1,X2)) -> mark#(X1) p20: mark#(U22(X)) -> mark#(X) p21: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p22: a__U31#(tt(),N) -> mark#(N) p23: mark#(U31(X1,X2)) -> mark#(X1) p24: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p25: a__plus#(N,|0|()) -> a__isNat#(N) p26: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p27: a__plus#(N,s(M)) -> a__isNat#(M) p28: mark#(plus(X1,X2)) -> mark#(X1) p29: mark#(plus(X1,X2)) -> mark#(X2) p30: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p31: mark#(and(X1,X2)) -> mark#(X1) p32: mark#(isNatKind(X)) -> a__isNatKind#(X) p33: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(plus(X1,X2)) -> a__plus#(mark(X1),mark(X2)) p15: a__plus#(N,s(M)) -> a__isNat#(M) p16: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p19: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p20: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p21: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p22: a__plus#(N,|0|()) -> a__isNat#(N) p23: mark#(U31(X1,X2)) -> mark#(X1) p24: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p25: a__U31#(tt(),N) -> mark#(N) p26: mark#(U22(X)) -> mark#(X) p27: mark#(U21(X1,X2)) -> mark#(X1) p28: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p29: mark#(U13(X)) -> mark#(X) p30: mark#(isNat(X)) -> a__isNat#(X) p31: mark#(U12(X1,X2)) -> mark#(X1) p32: mark#(U11(X1,X2,X3)) -> mark#(X1) p33: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = (1,12) tt_A() = (0,7) a__U12#_A(x1,x2) = (1,12) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,6) a__isNat#_A(x1) = (1,12) s_A(x1) = ((1,0),(0,0)) x1 + (9,11) a__isNatKind#_A(x1) = (1,12) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,13) a__and#_A(x1,x2) = ((1,0),(1,0)) x2 + (1,12) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,9) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,1) mark#_A(x1) = ((1,0),(1,0)) x1 + (1,12) and_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (0,1) mark_A(x1) = ((1,0),(1,1)) x1 + (0,8) a__plus#_A(x1,x2) = ((0,0),(1,0)) x2 + (1,9) a__U21#_A(x1,x2) = (1,12) a__and_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (0,8) isNat_A(x1) = ((0,0),(1,0)) x1 + (0,1) |0|_A() = (4,13) U31_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (3,14) a__U31#_A(x1,x2) = ((1,0),(1,0)) x2 + (2,13) U22_A(x1) = ((1,0),(0,0)) x1 + (0,9) U21_A(x1,x2) = ((1,0),(1,0)) x1 + (0,13) U13_A(x1) = x1 U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,1) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x3 a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x3 + (0,6) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,6) a__U13_A(x1) = x1 a__U21_A(x1,x2) = ((1,0),(1,0)) x1 + (0,14) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,10) a__U31_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (3,15) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (9,23) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (0,14) U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (9,7) precedence: U31 = a__U31 > a__U22 > a__U11# = a__U12# = a__isNat# = s = a__isNatKind# = a__and# = mark# = a__U21# > a__isNat > tt = a__isNatKind = isNatKind = mark = a__plus# = a__and = U12 = U11 = a__U11 = a__U12 = a__U13 = a__plus > plus = and = a__U31# = U13 > isNat > |0| > a__U41 > U21 = a__U21 > U22 = U41 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(s) = [] pi(a__isNatKind#) = [] pi(plus) = [] pi(a__and#) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(mark#) = [] pi(and) = [] pi(mark) = [] pi(a__plus#) = [] pi(a__U21#) = [] pi(a__and) = [] pi(isNat) = [] pi(|0|) = [] pi(U31) = [] pi(a__U31#) = [] pi(U22) = [] pi(U21) = [] pi(U13) = [] pi(U12) = [] pi(U11) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(U41) = [] The next rules are strictly ordered: p14 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: a__plus#(N,s(M)) -> a__isNat#(M) p15: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p18: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p19: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p20: a__plus#(N,s(M)) -> a__and#(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))) p21: a__plus#(N,|0|()) -> a__isNat#(N) p22: mark#(U31(X1,X2)) -> mark#(X1) p23: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p24: a__U31#(tt(),N) -> mark#(N) p25: mark#(U22(X)) -> mark#(X) p26: mark#(U21(X1,X2)) -> mark#(X1) p27: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p28: mark#(U13(X)) -> mark#(X) p29: mark#(isNat(X)) -> a__isNat#(X) p30: mark#(U12(X1,X2)) -> mark#(X1) p31: mark#(U11(X1,X2,X3)) -> mark#(X1) p32: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p15, p16, p17, p18, p19, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__U12#(tt(),V2) -> a__isNat#(V2) p3: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p4: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p5: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> mark#(X1) p10: mark#(isNat(X)) -> a__isNat#(X) p11: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p12: a__U21#(tt(),V1) -> a__isNat#(V1) p13: a__isNat#(s(V1)) -> a__isNatKind#(V1) p14: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p15: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p16: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p17: mark#(U13(X)) -> mark#(X) p18: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p19: mark#(U21(X1,X2)) -> mark#(X1) p20: mark#(U22(X)) -> mark#(X) p21: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p22: a__U31#(tt(),N) -> mark#(N) p23: mark#(U31(X1,X2)) -> mark#(X1) p24: mark#(plus(X1,X2)) -> mark#(X1) p25: mark#(plus(X1,X2)) -> mark#(X2) p26: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p27: mark#(and(X1,X2)) -> mark#(X1) p28: mark#(isNatKind(X)) -> a__isNatKind#(X) p29: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U11#_A(x1,x2,x3) = ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (12,14) tt_A() = (0,9) a__U12#_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (12,2) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,8) a__isNat#_A(x1) = ((0,0),(1,0)) x1 + (12,10) plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (14,5) a__and_A(x1,x2) = x1 + x2 a__isNatKind_A(x1) = (0,9) isNatKind_A(x1) = (0,0) a__and#_A(x1,x2) = x2 + (12,7) mark#_A(x1) = x1 + (12,7) U11_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,13) mark_A(x1) = x1 + (0,9) U12_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,14) isNat_A(x1) = ((0,0),(1,0)) x1 + (0,4) s_A(x1) = ((1,0),(0,0)) x1 + (11,15) a__U21#_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (12,11) a__isNatKind#_A(x1) = (12,7) U13_A(x1) = x1 + (0,15) U21_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,5) U22_A(x1) = x1 + (0,6) U31_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (14,1) a__U31#_A(x1,x2) = ((1,0),(0,0)) x2 + (13,6) and_A(x1,x2) = x1 + x2 a__U11_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (0,13) a__U12_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,14) a__U13_A(x1) = x1 + (0,15) a__U21_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,5) a__U22_A(x1) = x1 + (0,6) a__U31_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (14,10) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (25,16) a__plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (14,6) |0|_A() = (1,1) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (25,16) precedence: a__and = a__isNatKind = mark = a__U31 = a__plus = |0| > U31 > a__U41 > isNatKind = U41 > a__U21# > a__U11# > a__U21 = a__U22 > a__U12# > a__isNat# > U21 = and > tt = a__isNat = plus = a__and# = mark# = U11 = U12 = isNat = s = a__isNatKind# = U13 = U22 = a__U31# = a__U11 = a__U12 = a__U13 partial status: pi(a__U11#) = [] pi(tt) = [] pi(a__U12#) = [] pi(a__isNat) = [] pi(a__isNat#) = [] pi(plus) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(a__and#) = [] pi(mark#) = [] pi(U11) = [] pi(mark) = [] pi(U12) = [] pi(isNat) = [] pi(s) = [] pi(a__U21#) = [] pi(a__isNatKind#) = [] pi(U13) = [] pi(U21) = [1] pi(U22) = [] pi(U31) = [2] pi(a__U31#) = [] pi(and) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(|0|) = [] pi(U41) = [] 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: a__U11#(tt(),V1,V2) -> a__U12#(a__isNat(V1),V2) p2: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p3: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p4: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p5: a__and#(tt(),X) -> mark#(X) p6: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p7: mark#(U11(X1,X2,X3)) -> mark#(X1) p8: mark#(U12(X1,X2)) -> mark#(X1) p9: mark#(isNat(X)) -> a__isNat#(X) p10: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p11: a__U21#(tt(),V1) -> a__isNat#(V1) p12: a__isNat#(s(V1)) -> a__isNatKind#(V1) p13: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p14: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p15: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p16: mark#(U13(X)) -> mark#(X) p17: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p18: mark#(U21(X1,X2)) -> mark#(X1) p19: mark#(U22(X)) -> mark#(X) p20: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p21: a__U31#(tt(),N) -> mark#(N) p22: mark#(U31(X1,X2)) -> mark#(X1) p23: mark#(plus(X1,X2)) -> mark#(X1) p24: mark#(plus(X1,X2)) -> mark#(X2) p25: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p26: mark#(and(X1,X2)) -> mark#(X1) p27: mark#(isNatKind(X)) -> a__isNatKind#(X) p28: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(plus(X1,X2)) -> mark#(X1) p14: mark#(U31(X1,X2)) -> mark#(X1) p15: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p16: a__U31#(tt(),N) -> mark#(N) p17: mark#(U22(X)) -> mark#(X) p18: mark#(U21(X1,X2)) -> mark#(X1) p19: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p20: a__U21#(tt(),V1) -> a__isNat#(V1) p21: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p22: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p23: mark#(U13(X)) -> mark#(X) p24: mark#(isNat(X)) -> a__isNat#(X) p25: mark#(U12(X1,X2)) -> mark#(X1) p26: mark#(U11(X1,X2,X3)) -> mark#(X1) p27: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNat#_A(x1) = (11,4) plus_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (10,7) a__U11#_A(x1,x2,x3) = (11,4) a__and_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (0,8) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,3) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,1) tt_A() = (0,2) s_A(x1) = ((1,0),(1,0)) x1 + (10,0) a__isNatKind#_A(x1) = (11,4) a__and#_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (11,4) mark#_A(x1) = ((1,0),(1,0)) x1 + (11,4) and_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (0,3) mark_A(x1) = ((1,0),(1,1)) x1 + (0,8) U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (13,1) a__U31#_A(x1,x2) = ((1,0),(1,0)) x2 + (12,16) U22_A(x1) = ((1,0),(0,0)) x1 + (0,5) U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,3) a__U21#_A(x1,x2) = (11,4) U13_A(x1) = x1 isNat_A(x1) = ((0,0),(1,0)) x1 U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 U11_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x3 + (0,5) a__U11_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x3 + (0,6) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,1) a__isNat_A(x1) = ((0,0),(1,0)) x1 a__U13_A(x1) = x1 a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,7) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,6) a__U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (13,8) a__U41_A(x1,x2,x3) = ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + (20,11) a__plus_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (10,12) |0|_A() = (4,0) U41_A(x1,x2,x3) = ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + (20,9) precedence: a__and = a__isNatKind = s = mark = U31 = a__U31 = a__U41 = U41 > U13 = a__U11 = a__U12 = a__isNat = a__U13 = a__U21 > U21 > isNat > U22 = a__U22 > |0| > a__isNat# = a__U11# = isNatKind = a__isNatKind# = a__and# = mark# = and = a__U31# = a__U21# > a__plus > plus = U12 > tt = U11 partial status: pi(a__isNat#) = [] pi(plus) = [] pi(a__U11#) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(tt) = [] pi(s) = [] pi(a__isNatKind#) = [] pi(a__and#) = [] pi(mark#) = [] pi(and) = [] pi(mark) = [] pi(U31) = [] pi(a__U31#) = [] pi(U22) = [] pi(U21) = [] pi(a__U21#) = [] pi(U13) = [] pi(isNat) = [] pi(U12) = [] pi(U11) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__isNat) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(|0|) = [] pi(U41) = [] The next rules are strictly ordered: p13 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(U31(X1,X2)) -> mark#(X1) p14: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p15: a__U31#(tt(),N) -> mark#(N) p16: mark#(U22(X)) -> mark#(X) p17: mark#(U21(X1,X2)) -> mark#(X1) p18: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p19: a__U21#(tt(),V1) -> a__isNat#(V1) p20: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p21: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p22: mark#(U13(X)) -> mark#(X) p23: mark#(isNat(X)) -> a__isNat#(X) p24: mark#(U12(X1,X2)) -> mark#(X1) p25: mark#(U11(X1,X2,X3)) -> mark#(X1) p26: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p4: a__and#(tt(),X) -> mark#(X) p5: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p6: mark#(U11(X1,X2,X3)) -> mark#(X1) p7: mark#(U12(X1,X2)) -> mark#(X1) p8: mark#(isNat(X)) -> a__isNat#(X) p9: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p10: a__U21#(tt(),V1) -> a__isNat#(V1) p11: a__isNat#(s(V1)) -> a__isNatKind#(V1) p12: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p13: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p14: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p15: mark#(U13(X)) -> mark#(X) p16: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p17: mark#(U21(X1,X2)) -> mark#(X1) p18: mark#(U22(X)) -> mark#(X) p19: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2) p20: a__U31#(tt(),N) -> mark#(N) p21: mark#(U31(X1,X2)) -> mark#(X1) p22: mark#(plus(X1,X2)) -> mark#(X2) p23: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p24: mark#(and(X1,X2)) -> mark#(X1) p25: mark#(isNatKind(X)) -> a__isNatKind#(X) p26: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNat#_A(x1) = (15,8) plus_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (16,24) a__U11#_A(x1,x2,x3) = (15,8) a__and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,16) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,14) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,14) tt_A() = (0,9) a__and#_A(x1,x2) = ((0,0),(1,0)) x2 + (15,8) mark#_A(x1) = ((0,0),(1,0)) x1 + (15,8) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,7) mark_A(x1) = x1 + (0,7) U12_A(x1,x2) = ((1,0),(1,0)) x1 + (0,7) isNat_A(x1) = (0,7) s_A(x1) = ((1,0),(0,0)) x1 + (16,5) a__U21#_A(x1,x2) = (15,8) a__isNatKind#_A(x1) = (15,8) U13_A(x1) = ((1,0),(0,0)) x1 + (0,9) U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,9) U22_A(x1) = ((1,0),(0,0)) x1 + (0,7) U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (16,1) a__U31#_A(x1,x2) = ((0,0),(1,0)) x2 + (15,9) and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,9) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + (0,12) a__U12_A(x1,x2) = ((1,0),(1,0)) x1 + (0,11) a__isNat_A(x1) = (0,13) a__U13_A(x1) = ((1,0),(0,0)) x1 + (0,10) a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,11) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,10) a__U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (16,6) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (32,6) a__plus_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (16,24) |0|_A() = (0,13) U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (32,5) precedence: s > a__isNat# = a__U11# = a__and# = mark# = a__U21# = a__isNatKind# > a__U31# > and > a__and = a__isNatKind = isNatKind = tt = mark = isNat = a__isNat = a__U21 = a__U22 = a__U31 = a__U41 > U31 > U21 > U22 > a__plus > plus > U11 = U12 = U13 = a__U11 = a__U12 = a__U13 > |0| = U41 partial status: pi(a__isNat#) = [] pi(plus) = [] pi(a__U11#) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(tt) = [] pi(a__and#) = [] pi(mark#) = [] pi(U11) = [] pi(mark) = [] pi(U12) = [] pi(isNat) = [] pi(s) = [] pi(a__U21#) = [] pi(a__isNatKind#) = [] pi(U13) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(a__U31#) = [] pi(and) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__isNat) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(|0|) = [] pi(U41) = [] The next rules are strictly ordered: p19 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p4: a__and#(tt(),X) -> mark#(X) p5: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p6: mark#(U11(X1,X2,X3)) -> mark#(X1) p7: mark#(U12(X1,X2)) -> mark#(X1) p8: mark#(isNat(X)) -> a__isNat#(X) p9: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p10: a__U21#(tt(),V1) -> a__isNat#(V1) p11: a__isNat#(s(V1)) -> a__isNatKind#(V1) p12: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p13: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p14: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p15: mark#(U13(X)) -> mark#(X) p16: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p17: mark#(U21(X1,X2)) -> mark#(X1) p18: mark#(U22(X)) -> mark#(X) p19: a__U31#(tt(),N) -> mark#(N) p20: mark#(U31(X1,X2)) -> mark#(X1) p21: mark#(plus(X1,X2)) -> mark#(X2) p22: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p23: mark#(and(X1,X2)) -> mark#(X1) p24: mark#(isNatKind(X)) -> a__isNatKind#(X) p25: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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, p20, p21, p22, p23, p24, p25} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(U31(X1,X2)) -> mark#(X1) p14: mark#(U22(X)) -> mark#(X) p15: mark#(U21(X1,X2)) -> mark#(X1) p16: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p17: a__U21#(tt(),V1) -> a__isNat#(V1) p18: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p19: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p20: mark#(U13(X)) -> mark#(X) p21: mark#(isNat(X)) -> a__isNat#(X) p22: mark#(U12(X1,X2)) -> mark#(X1) p23: mark#(U11(X1,X2,X3)) -> mark#(X1) p24: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNat#_A(x1) = (7,17) plus_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (2,2) a__U11#_A(x1,x2,x3) = (7,17) a__and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,5) a__isNatKind_A(x1) = (0,16) isNatKind_A(x1) = (0,11) tt_A() = (0,16) s_A(x1) = ((1,0),(0,0)) x1 + (8,0) a__isNatKind#_A(x1) = (7,17) a__and#_A(x1,x2) = ((0,0),(1,0)) x2 + (7,17) mark#_A(x1) = ((0,0),(1,0)) x1 + (7,17) and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,5) mark_A(x1) = x1 + (0,5) U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (6,2) U22_A(x1) = ((1,0),(0,0)) x1 + (0,18) U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,16) a__U21#_A(x1,x2) = (7,17) U13_A(x1) = ((1,0),(0,0)) x1 + (0,13) isNat_A(x1) = (0,16) U12_A(x1,x2) = ((1,0),(0,0)) x1 + (0,14) U11_A(x1,x2,x3) = ((1,0),(1,0)) x1 + (0,17) a__U11_A(x1,x2,x3) = ((1,0),(1,0)) x1 + (0,19) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + (0,18) a__isNat_A(x1) = (0,21) a__U13_A(x1) = ((1,0),(0,0)) x1 + (0,17) a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + (0,20) a__U22_A(x1) = ((1,0),(0,0)) x1 + (0,19) a__U31_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (6,6) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (10,8) a__plus_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (2,2) |0|_A() = (5,0) U41_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (10,4) precedence: a__and = a__isNatKind = and = mark = U22 = isNat = U12 = a__U11 = a__U12 = a__isNat = a__U13 = |0| > U13 > plus = a__U41 = a__plus > s > a__isNat# = a__U11# = a__isNatKind# = a__and# = mark# = a__U21# > tt = U11 > isNatKind > a__U21 = a__U22 > U21 > a__U31 > U41 > U31 partial status: pi(a__isNat#) = [] pi(plus) = [1] pi(a__U11#) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(tt) = [] pi(s) = [] pi(a__isNatKind#) = [] pi(a__and#) = [] pi(mark#) = [] pi(and) = [] pi(mark) = [] pi(U31) = [] pi(U22) = [] pi(U21) = [] pi(a__U21#) = [] pi(U13) = [] pi(isNat) = [] pi(U12) = [] pi(U11) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__isNat) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [2] pi(a__U41) = [] pi(a__plus) = [1] pi(|0|) = [] pi(U41) = [] The next rules are strictly ordered: p13 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(U22(X)) -> mark#(X) p14: mark#(U21(X1,X2)) -> mark#(X1) p15: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p18: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p19: mark#(U13(X)) -> mark#(X) p20: mark#(isNat(X)) -> a__isNat#(X) p21: mark#(U12(X1,X2)) -> mark#(X1) p22: mark#(U11(X1,X2,X3)) -> mark#(X1) p23: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p4: a__and#(tt(),X) -> mark#(X) p5: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p6: mark#(U11(X1,X2,X3)) -> mark#(X1) p7: mark#(U12(X1,X2)) -> mark#(X1) p8: mark#(isNat(X)) -> a__isNat#(X) p9: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p10: a__U21#(tt(),V1) -> a__isNat#(V1) p11: a__isNat#(s(V1)) -> a__isNatKind#(V1) p12: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p13: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p14: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p15: mark#(U13(X)) -> mark#(X) p16: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p17: mark#(U21(X1,X2)) -> mark#(X1) p18: mark#(U22(X)) -> mark#(X) p19: mark#(plus(X1,X2)) -> mark#(X2) p20: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p21: mark#(and(X1,X2)) -> mark#(X1) p22: mark#(isNatKind(X)) -> a__isNatKind#(X) p23: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNat#_A(x1) = ((1,0),(1,1)) x1 + (1,1) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (52,39) a__U11#_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (2,76) a__and_A(x1,x2) = x1 + x2 + (0,1) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,28) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,9) tt_A() = (0,26) a__and#_A(x1,x2) = x1 + x2 + (0,12) mark#_A(x1) = x1 + (0,37) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,0)) x3 + (51,38) mark_A(x1) = x1 + (0,20) U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (26,1) isNat_A(x1) = ((1,0),(1,1)) x1 + (24,1) s_A(x1) = ((1,0),(0,0)) x1 + (27,27) a__U21#_A(x1,x2) = ((1,0),(0,0)) x2 + (2,28) a__isNatKind#_A(x1) = ((0,0),(1,0)) x1 + (0,8) U13_A(x1) = ((1,0),(0,0)) x1 + (1,1) U21_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (26,7) U22_A(x1) = x1 + (1,21) and_A(x1,x2) = x1 + x2 + (0,1) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,0)) x3 + (51,38) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (26,3) a__isNat_A(x1) = ((1,0),(1,1)) x1 + (24,4) a__U13_A(x1) = ((1,0),(0,0)) x1 + (1,2) a__U21_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (26,26) a__U22_A(x1) = x1 + (1,21) a__U31_A(x1,x2) = ((1,0),(0,0)) x2 + (24,21) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (79,28) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (52,40) |0|_A() = (23,0) U31_A(x1,x2) = ((1,0),(0,0)) x2 + (24,2) U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (79,21) precedence: U41 > mark = U22 = a__U21 = a__U22 > a__and > a__isNatKind > isNatKind = and > U21 > U12 = a__isNatKind# = U13 = a__U12 = a__U13 > a__U41 = a__plus > s = a__U31 > isNat = a__U11 = a__isNat > U11 > a__isNat# = a__U11# = a__U21# > plus > a__and# > mark# = |0| > tt = U31 partial status: pi(a__isNat#) = [] pi(plus) = [] pi(a__U11#) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(tt) = [] pi(a__and#) = [] pi(mark#) = [1] pi(U11) = [2] pi(mark) = [] pi(U12) = [] pi(isNat) = [] pi(s) = [] pi(a__U21#) = [] pi(a__isNatKind#) = [] pi(U13) = [] pi(U21) = [] pi(U22) = [] pi(and) = [2] pi(a__U11) = [2] pi(a__U12) = [] pi(a__isNat) = [1] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(|0|) = [] pi(U31) = [] pi(U41) = [] 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: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__and#(tt(),X) -> mark#(X) p4: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) p5: mark#(U11(X1,X2,X3)) -> mark#(X1) p6: mark#(U12(X1,X2)) -> mark#(X1) p7: mark#(isNat(X)) -> a__isNat#(X) p8: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p9: a__U21#(tt(),V1) -> a__isNat#(V1) p10: a__isNat#(s(V1)) -> a__isNatKind#(V1) p11: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p12: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p13: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p14: mark#(U13(X)) -> mark#(X) p15: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p16: mark#(U21(X1,X2)) -> mark#(X1) p17: mark#(U22(X)) -> mark#(X) p18: mark#(plus(X1,X2)) -> mark#(X2) p19: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p20: mark#(and(X1,X2)) -> mark#(X1) p21: mark#(isNatKind(X)) -> a__isNatKind#(X) p22: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(U22(X)) -> mark#(X) p14: mark#(U21(X1,X2)) -> mark#(X1) p15: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p18: mark#(U13(X)) -> mark#(X) p19: mark#(isNat(X)) -> a__isNat#(X) p20: mark#(U12(X1,X2)) -> mark#(X1) p21: mark#(U11(X1,X2,X3)) -> mark#(X1) p22: mark#(U11(X1,X2,X3)) -> a__U11#(mark(X1),X2,X3) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNat#_A(x1) = ((0,0),(1,0)) x1 + (2,23) plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (29,52) a__U11#_A(x1,x2,x3) = ((0,0),(1,0)) x2 + (2,24) a__and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,30) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,106) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,105) tt_A() = (0,26) s_A(x1) = x1 + (31,49) a__isNatKind#_A(x1) = (2,53) a__and#_A(x1,x2) = ((0,0),(1,0)) x2 + (2,53) mark#_A(x1) = ((0,0),(1,0)) x1 + (2,53) and_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (0,27) mark_A(x1) = x1 + (0,30) U22_A(x1) = ((1,0),(1,0)) x1 + (1,1) U21_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (32,18) a__U21#_A(x1,x2) = ((0,0),(1,0)) x2 + (2,50) U13_A(x1) = ((1,0),(0,0)) x1 + (3,26) isNat_A(x1) = ((1,0),(1,1)) x1 + (16,24) U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (20,27) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + x3 + (37,0) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + x3 + (37,29) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (20,28) a__isNat_A(x1) = ((1,0),(1,1)) x1 + (16,25) a__U13_A(x1) = ((1,0),(0,0)) x1 + (3,27) a__U21_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (32,48) a__U22_A(x1) = ((1,0),(1,0)) x1 + (1,31) a__U31_A(x1,x2) = ((1,0),(0,0)) x2 + (30,135) a__U41_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(0,0)) x3 + (60,131) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (29,52) |0|_A() = (1,82) U31_A(x1,x2) = ((1,0),(0,0)) x2 + (30,105) U41_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(0,0)) x3 + (60,102) precedence: isNat > a__isNat# = a__U11# > a__isNatKind# = a__and# = mark# > U21 = a__U21# > a__and = a__isNatKind = isNatKind = mark = U22 = U13 = a__U11 = a__U12 = a__isNat = a__U13 = a__U21 = a__U22 = a__U31 = a__U41 = a__plus = U31 > s > U11 > and = |0| > plus = tt = U12 = U41 partial status: pi(a__isNat#) = [] pi(plus) = [] pi(a__U11#) = [] pi(a__and) = [] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(tt) = [] pi(s) = [1] pi(a__isNatKind#) = [] pi(a__and#) = [] pi(mark#) = [] pi(and) = [] pi(mark) = [] pi(U22) = [] pi(U21) = [] pi(a__U21#) = [] pi(U13) = [] pi(isNat) = [1] pi(U12) = [] pi(U11) = [3] pi(a__U11) = [] pi(a__U12) = [] pi(a__isNat) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(|0|) = [] pi(U31) = [] pi(U41) = [] 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: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(U22(X)) -> mark#(X) p14: mark#(U21(X1,X2)) -> mark#(X1) p15: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p16: a__U21#(tt(),V1) -> a__isNat#(V1) p17: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p18: mark#(U13(X)) -> mark#(X) p19: mark#(isNat(X)) -> a__isNat#(X) p20: mark#(U12(X1,X2)) -> mark#(X1) p21: mark#(U11(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(plus(V1,V2)) -> a__U11#(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) p2: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p4: a__U21#(tt(),V1) -> a__isNat#(V1) p5: a__isNat#(s(V1)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(U11(X1,X2,X3)) -> mark#(X1) p9: mark#(U12(X1,X2)) -> mark#(X1) p10: mark#(isNat(X)) -> a__isNat#(X) p11: mark#(U13(X)) -> mark#(X) p12: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p13: mark#(U21(X1,X2)) -> mark#(X1) p14: mark#(U22(X)) -> mark#(X) p15: mark#(plus(X1,X2)) -> mark#(X2) p16: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p17: mark#(and(X1,X2)) -> mark#(X1) p18: mark#(isNatKind(X)) -> a__isNatKind#(X) p19: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p20: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p21: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNat#_A(x1) = ((1,0),(1,1)) x1 + (2,34) plus_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (38,2) a__U11#_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + ((1,0),(0,0)) x3 + (3,35) a__and_A(x1,x2) = x1 + x2 + (0,2) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,37) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,3) tt_A() = (0,33) s_A(x1) = ((1,0),(0,0)) x1 + (17,17) a__U21#_A(x1,x2) = ((1,0),(1,0)) x2 + (18,18) a__isNatKind#_A(x1) = ((0,0),(1,0)) x1 + (19,68) a__and#_A(x1,x2) = x2 + (19,103) mark#_A(x1) = x1 + (19,101) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (37,11) U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (20,1) isNat_A(x1) = ((1,0),(1,1)) x1 + (16,1) U13_A(x1) = x1 U21_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (20,19) mark_A(x1) = x1 + (0,34) U22_A(x1) = ((1,0),(1,0)) x1 + (1,1) and_A(x1,x2) = x1 + x2 + (0,2) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (37,44) a__U12_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (20,2) a__isNat_A(x1) = ((1,0),(1,1)) x1 + (16,3) a__U13_A(x1) = x1 a__U21_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (20,51) a__U22_A(x1) = ((1,0),(1,0)) x1 + (1,34) a__U31_A(x1,x2) = ((1,0),(0,0)) x2 + (3,5) a__U41_A(x1,x2,x3) = ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (55,18) a__plus_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (38,2) |0|_A() = (2,8) U31_A(x1,x2) = ((1,0),(0,0)) x2 + (3,5) U41_A(x1,x2,x3) = ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (55,0) precedence: a__U11 > U11 > U12 > a__isNat > isNat > a__U31 = U31 > a__isNatKind = isNatKind = mark = a__U21 = a__U22 > U22 > a__isNat# = a__U11# = a__U21# = a__isNatKind# = a__and# = mark# = U21 > a__plus > a__and = and > plus > |0| > a__U12 > tt = U13 = a__U13 > a__U41 > U41 > s partial status: pi(a__isNat#) = [1] pi(plus) = [] pi(a__U11#) = [2] pi(a__and) = [1] pi(a__isNatKind) = [] pi(isNatKind) = [] pi(tt) = [] pi(s) = [] pi(a__U21#) = [] pi(a__isNatKind#) = [] pi(a__and#) = [] pi(mark#) = [1] pi(U11) = [] pi(U12) = [] pi(isNat) = [] pi(U13) = [1] pi(U21) = [] pi(mark) = [1] pi(U22) = [] pi(and) = [1] pi(a__U11) = [] pi(a__U12) = [] pi(a__isNat) = [1] pi(a__U13) = [1] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__plus) = [] pi(|0|) = [] pi(U31) = [] pi(U41) = [] 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: a__U11#(tt(),V1,V2) -> a__isNat#(V1) p2: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p3: a__U21#(tt(),V1) -> a__isNat#(V1) p4: a__isNat#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p6: a__and#(tt(),X) -> mark#(X) p7: mark#(U11(X1,X2,X3)) -> mark#(X1) p8: mark#(U12(X1,X2)) -> mark#(X1) p9: mark#(isNat(X)) -> a__isNat#(X) p10: mark#(U13(X)) -> mark#(X) p11: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p12: mark#(U21(X1,X2)) -> mark#(X1) p13: mark#(U22(X)) -> mark#(X) p14: mark#(plus(X1,X2)) -> mark#(X2) p15: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p16: mark#(and(X1,X2)) -> mark#(X1) p17: mark#(isNatKind(X)) -> a__isNatKind#(X) p18: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p19: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p20: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p2: a__U21#(tt(),V1) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: a__and#(tt(),X) -> mark#(X) p8: mark#(s(X)) -> mark#(X) p9: mark#(isNatKind(X)) -> a__isNatKind#(X) p10: mark#(and(X1,X2)) -> mark#(X1) p11: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p12: mark#(plus(X1,X2)) -> mark#(X2) p13: mark#(U22(X)) -> mark#(X) p14: mark#(U21(X1,X2)) -> mark#(X1) p15: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p16: mark#(U13(X)) -> mark#(X) p17: mark#(isNat(X)) -> a__isNat#(X) p18: mark#(U12(X1,X2)) -> mark#(X1) p19: mark#(U11(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNat#_A(x1) = x1 + (2,26) s_A(x1) = x1 + (25,5) a__U21#_A(x1,x2) = ((1,0),(1,1)) x2 + (26,32) a__isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,30) tt_A() = (0,20) a__isNatKind#_A(x1) = ((0,0),(1,0)) x1 + (0,6) plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (67,15) a__and#_A(x1,x2) = ((1,0),(1,1)) x2 + (0,32) isNatKind_A(x1) = ((0,0),(1,0)) x1 + (0,7) mark#_A(x1) = x1 + (0,31) and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,33) mark_A(x1) = x1 + (0,23) U22_A(x1) = ((1,0),(0,0)) x1 + (1,1) U21_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (28,2) U13_A(x1) = x1 + (1,24) isNat_A(x1) = ((1,0),(1,0)) x1 + (26,1) U12_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (28,22) U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (55,49) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (55,71) a__U12_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (28,22) a__isNat_A(x1) = ((1,0),(1,0)) x1 + (26,4) a__U13_A(x1) = x1 + (1,24) a__U21_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (28,3) a__U22_A(x1) = ((1,0),(0,0)) x1 + (1,2) a__U31_A(x1,x2) = x2 + (28,22) a__U41_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(1,0)) x3 + (92,44) a__plus_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (67,15) a__and_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (0,33) |0|_A() = (27,21) U31_A(x1,x2) = x2 + (28,1) U41_A(x1,x2,x3) = ((1,0),(1,1)) x2 + ((1,0),(1,0)) x3 + (92,22) precedence: a__isNat > isNat > |0| > a__isNatKind = isNatKind = and = mark = a__U31 = a__plus = a__and > U31 > s > plus > a__U41 > U21 = a__U21 > U22 = a__U22 > U12 = U11 = a__U11 = a__U12 > U13 = a__U13 > tt > a__isNat# > a__isNatKind# > a__and# > a__U21# = mark# = U41 partial status: pi(a__isNat#) = [] pi(s) = [1] pi(a__U21#) = [] pi(a__isNatKind) = [] pi(tt) = [] pi(a__isNatKind#) = [] pi(plus) = [2] pi(a__and#) = [] pi(isNatKind) = [] pi(mark#) = [1] pi(and) = [1, 2] pi(mark) = [1] pi(U22) = [] pi(U21) = [] pi(U13) = [] pi(isNat) = [] pi(U12) = [] pi(U11) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__isNat) = [] pi(a__U13) = [1] pi(a__U21) = [2] pi(a__U22) = [] pi(a__U31) = [2] pi(a__U41) = [] pi(a__plus) = [2] pi(a__and) = [1, 2] pi(|0|) = [] pi(U31) = [] pi(U41) = [] The next rules are strictly ordered: p7 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p2: a__U21#(tt(),V1) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNatKind#(V1) p4: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p5: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) p6: a__isNatKind#(plus(V1,V2)) -> a__and#(a__isNatKind(V1),isNatKind(V2)) p7: mark#(s(X)) -> mark#(X) p8: mark#(isNatKind(X)) -> a__isNatKind#(X) p9: mark#(and(X1,X2)) -> mark#(X1) p10: mark#(and(X1,X2)) -> a__and#(mark(X1),X2) p11: mark#(plus(X1,X2)) -> mark#(X2) p12: mark#(U22(X)) -> mark#(X) p13: mark#(U21(X1,X2)) -> mark#(X1) p14: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2) p15: mark#(U13(X)) -> mark#(X) p16: mark#(isNat(X)) -> a__isNat#(X) p17: mark#(U12(X1,X2)) -> mark#(X1) p18: mark#(U11(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p7, p9, p11, p12, p13, p15, p17, p18} {p1, p2} {p4, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X1,X2,X3)) -> mark#(X1) p2: mark#(U12(X1,X2)) -> mark#(X1) p3: mark#(U13(X)) -> mark#(X) p4: mark#(U21(X1,X2)) -> mark#(X1) p5: mark#(U22(X)) -> mark#(X) p6: mark#(plus(X1,X2)) -> mark#(X2) p7: mark#(and(X1,X2)) -> mark#(X1) p8: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = x1 + (1,2) U11_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((0,0),(1,0)) x3 + (2,1) U12_A(x1,x2) = x1 + x2 + (2,1) U13_A(x1) = x1 + (2,3) U21_A(x1,x2) = x1 + (2,3) U22_A(x1) = x1 + (2,3) plus_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (2,3) and_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) s_A(x1) = ((1,0),(1,1)) x1 + (2,3) precedence: and > s > U11 > U12 > U13 > U21 > mark# = plus > U22 partial status: pi(mark#) = [1] pi(U11) = [] pi(U12) = [] pi(U13) = [1] pi(U21) = [] pi(U22) = [1] pi(plus) = [2] pi(and) = [2] pi(s) = [1] 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: mark#(U12(X1,X2)) -> mark#(X1) p2: mark#(U13(X)) -> mark#(X) p3: mark#(U21(X1,X2)) -> mark#(X1) p4: mark#(U22(X)) -> mark#(X) p5: mark#(plus(X1,X2)) -> mark#(X2) p6: mark#(and(X1,X2)) -> mark#(X1) p7: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U12(X1,X2)) -> mark#(X1) p2: mark#(s(X)) -> mark#(X) p3: mark#(and(X1,X2)) -> mark#(X1) p4: mark#(plus(X1,X2)) -> mark#(X2) p5: mark#(U22(X)) -> mark#(X) p6: mark#(U21(X1,X2)) -> mark#(X1) p7: mark#(U13(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U12_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) s_A(x1) = ((1,0),(0,0)) x1 + (1,1) and_A(x1,x2) = ((1,0),(0,0)) x1 + (3,3) plus_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (1,3) U22_A(x1) = ((1,0),(0,0)) x1 + (3,3) U21_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (1,3) U13_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: mark# = U12 = U22 = U21 > U13 > and > plus > s partial status: pi(mark#) = [] pi(U12) = [] pi(s) = [] pi(and) = [] pi(plus) = [] pi(U22) = [] pi(U21) = [] pi(U13) = [] 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: mark#(U12(X1,X2)) -> mark#(X1) p2: mark#(s(X)) -> mark#(X) p3: mark#(plus(X1,X2)) -> mark#(X2) p4: mark#(U22(X)) -> mark#(X) p5: mark#(U21(X1,X2)) -> mark#(X1) p6: mark#(U13(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U12(X1,X2)) -> mark#(X1) p2: mark#(U13(X)) -> mark#(X) p3: mark#(U21(X1,X2)) -> mark#(X1) p4: mark#(U22(X)) -> mark#(X) p5: mark#(plus(X1,X2)) -> mark#(X2) p6: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = ((1,0),(0,0)) x1 + (2,2) U12_A(x1,x2) = ((1,0),(0,0)) x1 + (3,3) U13_A(x1) = ((1,0),(0,0)) x1 + (3,3) U21_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) U22_A(x1) = ((1,0),(0,0)) x1 + (3,3) plus_A(x1,x2) = ((1,0),(0,0)) x2 + (1,3) s_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: plus > s > U12 > U13 > U21 > U22 > mark# partial status: pi(mark#) = [] pi(U12) = [] pi(U13) = [] pi(U21) = [2] pi(U22) = [] pi(plus) = [] pi(s) = [] 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: mark#(U12(X1,X2)) -> mark#(X1) p2: mark#(U13(X)) -> mark#(X) p3: mark#(U21(X1,X2)) -> mark#(X1) p4: mark#(plus(X1,X2)) -> mark#(X2) p5: mark#(s(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U12(X1,X2)) -> mark#(X1) p2: mark#(s(X)) -> mark#(X) p3: mark#(plus(X1,X2)) -> mark#(X2) p4: mark#(U21(X1,X2)) -> mark#(X1) p5: mark#(U13(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = ((1,0),(0,0)) x1 U12_A(x1,x2) = ((1,0),(0,0)) x1 + (1,1) s_A(x1) = ((1,0),(0,0)) x1 + (1,1) plus_A(x1,x2) = ((1,0),(0,0)) x2 + (1,1) U21_A(x1,x2) = x1 + x2 + (1,1) U13_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: U12 > U13 > U21 > mark# = s = plus partial status: pi(mark#) = [] pi(U12) = [] pi(s) = [] pi(plus) = [] pi(U21) = [] pi(U13) = [] 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: mark#(s(X)) -> mark#(X) p2: mark#(plus(X1,X2)) -> mark#(X2) p3: mark#(U21(X1,X2)) -> mark#(X1) p4: mark#(U13(X)) -> mark#(X) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(s(X)) -> mark#(X) p2: mark#(U13(X)) -> mark#(X) p3: mark#(U21(X1,X2)) -> mark#(X1) p4: mark#(plus(X1,X2)) -> mark#(X2) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = x1 s_A(x1) = ((1,0),(1,1)) x1 + (1,1) U13_A(x1) = ((1,0),(1,1)) x1 + (1,1) U21_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,1) plus_A(x1,x2) = x1 + x2 + (1,1) precedence: mark# = s = U13 = U21 = plus partial status: pi(mark#) = [1] pi(s) = [1] pi(U13) = [1] pi(U21) = [1, 2] pi(plus) = [2] 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: mark#(U13(X)) -> mark#(X) p2: mark#(U21(X1,X2)) -> mark#(X1) p3: mark#(plus(X1,X2)) -> mark#(X2) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1, p2, p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U13(X)) -> mark#(X) p2: mark#(plus(X1,X2)) -> mark#(X2) p3: mark#(U21(X1,X2)) -> mark#(X1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = x1 + (1,1) U13_A(x1) = x1 + (2,2) plus_A(x1,x2) = ((0,0),(1,0)) x1 + x2 + (2,2) U21_A(x1,x2) = x1 + x2 + (1,2) precedence: U21 > U13 > plus > mark# partial status: pi(mark#) = [1] pi(U13) = [1] pi(plus) = [2] pi(U21) = [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: mark#(U13(X)) -> mark#(X) p2: mark#(U21(X1,X2)) -> mark#(X1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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: mark#(U13(X)) -> mark#(X) p2: mark#(U21(X1,X2)) -> mark#(X1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = ((1,0),(1,0)) x1 + (1,2) U13_A(x1) = ((1,0),(0,0)) x1 + (2,1) U21_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (2,1) precedence: mark# = U13 = U21 partial status: pi(mark#) = [] pi(U13) = [] pi(U21) = [2] 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: mark#(U21(X1,X2)) -> mark#(X1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X1,X2)) -> mark#(X1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = ((1,0),(1,1)) x1 U21_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (1,1) precedence: mark# = U21 partial status: pi(mark#) = [1] pi(U21) = [1] 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: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) p2: a__U21#(tt(),V1) -> a__isNat#(V1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNat#_A(x1) = ((0,0),(1,0)) x1 + (5,4) s_A(x1) = ((1,0),(0,0)) x1 + (4,6) a__U21#_A(x1,x2) = ((0,0),(1,0)) x2 + (5,5) a__isNatKind_A(x1) = ((1,0),(0,0)) x1 + (0,7) tt_A() = (6,1) a__U11_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (12,4) a__U12_A(x1,x2) = ((1,0),(0,0)) x2 + (7,3) a__isNat_A(x1) = ((1,0),(0,0)) x1 + (5,5) a__U13_A(x1) = (6,2) a__U21_A(x1,x2) = ((1,0),(0,0)) x2 + (6,3) a__U22_A(x1) = (6,2) a__U31_A(x1,x2) = ((1,0),(0,0)) x2 + (8,5) mark_A(x1) = ((1,0),(0,0)) x1 + (0,8) a__U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (11,6) a__plus_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (7,0) |0|_A() = (7,5) plus_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (7,0) a__and_A(x1,x2) = ((1,0),(0,0)) x2 + (0,8) isNatKind_A(x1) = ((1,0),(0,0)) x1 + (0,1) and_A(x1,x2) = ((1,0),(0,0)) x2 + (0,8) isNat_A(x1) = ((1,0),(0,0)) x1 + (5,0) U11_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (12,1) U12_A(x1,x2) = ((1,0),(0,0)) x2 + (7,0) U13_A(x1) = (6,1) U21_A(x1,x2) = ((1,0),(0,0)) x2 + (6,2) U22_A(x1) = (6,0) U31_A(x1,x2) = ((1,0),(0,0)) x2 + (8,1) U41_A(x1,x2,x3) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (11,1) precedence: |0| > a__U31 = mark = a__plus = a__and = and > a__U11 > a__isNat > a__U41 > s > a__isNatKind > a__U12 > a__isNat# = a__U21# = a__U13 = U11 > plus > U13 > tt = a__U21 = a__U22 = isNatKind = isNat = U12 = U21 = U22 = U31 = U41 partial status: pi(a__isNat#) = [] pi(s) = [] pi(a__U21#) = [] pi(a__isNatKind) = [] pi(tt) = [] pi(a__U11) = [] pi(a__U12) = [] pi(a__isNat) = [] pi(a__U13) = [] pi(a__U21) = [] pi(a__U22) = [] pi(a__U31) = [] pi(mark) = [] pi(a__U41) = [] pi(a__plus) = [] pi(|0|) = [] pi(plus) = [2] pi(a__and) = [] pi(isNatKind) = [] pi(and) = [] pi(isNat) = [] pi(U11) = [] pi(U12) = [] pi(U13) = [] pi(U21) = [] pi(U22) = [] pi(U31) = [] pi(U41) = [] 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: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(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: a__isNatKind#(s(V1)) -> a__isNatKind#(V1) p2: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNatKind#_A(x1) = ((1,0),(0,0)) x1 + (2,2) s_A(x1) = ((1,0),(0,0)) x1 + (3,3) plus_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) precedence: a__isNatKind# = s > plus partial status: pi(a__isNatKind#) = [] pi(s) = [] pi(plus) = [] 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: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatKind#(plus(V1,V2)) -> a__isNatKind#(V1) and R consists of: r1: a__U11(tt(),V1,V2) -> a__U12(a__isNat(V1),V2) r2: a__U12(tt(),V2) -> a__U13(a__isNat(V2)) r3: a__U13(tt()) -> tt() r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) r5: a__U22(tt()) -> tt() r6: a__U31(tt(),N) -> mark(N) r7: a__U41(tt(),M,N) -> s(a__plus(mark(N),mark(M))) r8: a__and(tt(),X) -> mark(X) r9: a__isNat(|0|()) -> tt() r10: a__isNat(plus(V1,V2)) -> a__U11(a__and(a__isNatKind(V1),isNatKind(V2)),V1,V2) r11: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) r12: a__isNatKind(|0|()) -> tt() r13: a__isNatKind(plus(V1,V2)) -> a__and(a__isNatKind(V1),isNatKind(V2)) r14: a__isNatKind(s(V1)) -> a__isNatKind(V1) r15: a__plus(N,|0|()) -> a__U31(a__and(a__isNat(N),isNatKind(N)),N) r16: a__plus(N,s(M)) -> a__U41(a__and(a__and(a__isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N))),M,N) r17: mark(U11(X1,X2,X3)) -> a__U11(mark(X1),X2,X3) r18: mark(U12(X1,X2)) -> a__U12(mark(X1),X2) r19: mark(isNat(X)) -> a__isNat(X) r20: mark(U13(X)) -> a__U13(mark(X)) r21: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) r22: mark(U22(X)) -> a__U22(mark(X)) r23: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) r24: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) r25: mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) r26: mark(and(X1,X2)) -> a__and(mark(X1),X2) r27: mark(isNatKind(X)) -> a__isNatKind(X) r28: mark(tt()) -> tt() r29: mark(s(X)) -> s(mark(X)) r30: mark(|0|()) -> |0|() r31: a__U11(X1,X2,X3) -> U11(X1,X2,X3) r32: a__U12(X1,X2) -> U12(X1,X2) r33: a__isNat(X) -> isNat(X) r34: a__U13(X) -> U13(X) r35: a__U21(X1,X2) -> U21(X1,X2) r36: a__U22(X) -> U22(X) r37: a__U31(X1,X2) -> U31(X1,X2) r38: a__U41(X1,X2,X3) -> U41(X1,X2,X3) r39: a__plus(X1,X2) -> plus(X1,X2) r40: a__and(X1,X2) -> and(X1,X2) r41: a__isNatKind(X) -> isNatKind(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNatKind#_A(x1) = ((1,0),(1,1)) x1 plus_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (1,1) precedence: a__isNatKind# > plus partial status: pi(a__isNatKind#) = [1] pi(plus) = [1, 2] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.