YES We show the termination of the TRS R: a__zeros() -> cons(|0|(),zeros()) a__U11(tt()) -> tt() a__U21(tt()) -> tt() a__U31(tt()) -> tt() a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) a__U42(tt()) -> tt() a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) a__U52(tt()) -> tt() a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) a__U62(tt()) -> tt() a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) a__U72(tt(),L) -> s(a__length(mark(L))) a__U81(tt()) -> nil() a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) a__isNat(|0|()) -> tt() a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) a__isNat(s(V1)) -> a__U21(a__isNat(V1)) a__isNatIList(V) -> a__U31(a__isNatList(V)) a__isNatIList(zeros()) -> tt() a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) a__isNatList(nil()) -> tt() a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) a__length(nil()) -> |0|() a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) mark(zeros()) -> a__zeros() mark(U11(X)) -> a__U11(mark(X)) mark(U21(X)) -> a__U21(mark(X)) mark(U31(X)) -> a__U31(mark(X)) mark(U41(X1,X2)) -> a__U41(mark(X1),X2) mark(U42(X)) -> a__U42(mark(X)) mark(isNatIList(X)) -> a__isNatIList(X) mark(U51(X1,X2)) -> a__U51(mark(X1),X2) mark(U52(X)) -> a__U52(mark(X)) mark(isNatList(X)) -> a__isNatList(X) mark(U61(X1,X2)) -> a__U61(mark(X1),X2) mark(U62(X)) -> a__U62(mark(X)) mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) mark(U72(X1,X2)) -> a__U72(mark(X1),X2) mark(isNat(X)) -> a__isNat(X) mark(length(X)) -> a__length(mark(X)) mark(U81(X)) -> a__U81(mark(X)) mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(|0|()) -> |0|() mark(tt()) -> tt() mark(s(X)) -> s(mark(X)) mark(nil()) -> nil() a__zeros() -> zeros() a__U11(X) -> U11(X) a__U21(X) -> U21(X) a__U31(X) -> U31(X) a__U41(X1,X2) -> U41(X1,X2) a__U42(X) -> U42(X) a__isNatIList(X) -> isNatIList(X) a__U51(X1,X2) -> U51(X1,X2) a__U52(X) -> U52(X) a__isNatList(X) -> isNatList(X) a__U61(X1,X2) -> U61(X1,X2) a__U62(X) -> U62(X) a__U71(X1,X2,X3) -> U71(X1,X2,X3) a__U72(X1,X2) -> U72(X1,X2) a__isNat(X) -> isNat(X) a__length(X) -> length(X) a__U81(X) -> U81(X) a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) a__take(X1,X2) -> take(X1,X2) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U41#(tt(),V2) -> a__U42#(a__isNatIList(V2)) p2: a__U41#(tt(),V2) -> a__isNatIList#(V2) p3: a__U51#(tt(),V2) -> a__U52#(a__isNatList(V2)) p4: a__U51#(tt(),V2) -> a__isNatList#(V2) p5: a__U61#(tt(),V2) -> a__U62#(a__isNatIList(V2)) p6: a__U61#(tt(),V2) -> a__isNatIList#(V2) p7: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p8: a__U71#(tt(),L,N) -> a__isNat#(N) p9: a__U72#(tt(),L) -> a__length#(mark(L)) p10: a__U72#(tt(),L) -> mark#(L) p11: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p12: a__U91#(tt(),IL,M,N) -> a__isNat#(M) p13: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p14: a__U92#(tt(),IL,M,N) -> a__isNat#(N) p15: a__U93#(tt(),IL,M,N) -> mark#(N) p16: a__isNat#(length(V1)) -> a__U11#(a__isNatList(V1)) p17: a__isNat#(length(V1)) -> a__isNatList#(V1) p18: a__isNat#(s(V1)) -> a__U21#(a__isNat(V1)) p19: a__isNat#(s(V1)) -> a__isNat#(V1) p20: a__isNatIList#(V) -> a__U31#(a__isNatList(V)) p21: a__isNatIList#(V) -> a__isNatList#(V) p22: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) p23: a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) p24: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p25: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p26: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p27: a__isNatList#(take(V1,V2)) -> a__isNat#(V1) p28: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p29: a__length#(cons(N,L)) -> a__isNatList#(L) p30: a__take#(|0|(),IL) -> a__U81#(a__isNatIList(IL)) p31: a__take#(|0|(),IL) -> a__isNatIList#(IL) p32: a__take#(s(M),cons(N,IL)) -> a__U91#(a__isNatIList(IL),IL,M,N) p33: a__take#(s(M),cons(N,IL)) -> a__isNatIList#(IL) p34: mark#(zeros()) -> a__zeros#() p35: mark#(U11(X)) -> a__U11#(mark(X)) p36: mark#(U11(X)) -> mark#(X) p37: mark#(U21(X)) -> a__U21#(mark(X)) p38: mark#(U21(X)) -> mark#(X) p39: mark#(U31(X)) -> a__U31#(mark(X)) p40: mark#(U31(X)) -> mark#(X) p41: mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) p42: mark#(U41(X1,X2)) -> mark#(X1) p43: mark#(U42(X)) -> a__U42#(mark(X)) p44: mark#(U42(X)) -> mark#(X) p45: mark#(isNatIList(X)) -> a__isNatIList#(X) p46: mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) p47: mark#(U51(X1,X2)) -> mark#(X1) p48: mark#(U52(X)) -> a__U52#(mark(X)) p49: mark#(U52(X)) -> mark#(X) p50: mark#(isNatList(X)) -> a__isNatList#(X) p51: mark#(U61(X1,X2)) -> a__U61#(mark(X1),X2) p52: mark#(U61(X1,X2)) -> mark#(X1) p53: mark#(U62(X)) -> a__U62#(mark(X)) p54: mark#(U62(X)) -> mark#(X) p55: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p56: mark#(U71(X1,X2,X3)) -> mark#(X1) p57: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p58: mark#(U72(X1,X2)) -> mark#(X1) p59: mark#(isNat(X)) -> a__isNat#(X) p60: mark#(length(X)) -> a__length#(mark(X)) p61: mark#(length(X)) -> mark#(X) p62: mark#(U81(X)) -> a__U81#(mark(X)) p63: mark#(U81(X)) -> mark#(X) p64: mark#(U91(X1,X2,X3,X4)) -> a__U91#(mark(X1),X2,X3,X4) p65: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p66: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p67: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p68: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p69: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p70: mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) p71: mark#(take(X1,X2)) -> mark#(X1) p72: mark#(take(X1,X2)) -> mark#(X2) p73: mark#(cons(X1,X2)) -> mark#(X1) p74: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p7, p9, p10, p11, p13, p15, p28, p32, p36, p38, p40, p42, p44, p47, p49, p52, p54, p55, p56, p57, p58, p60, p61, p63, p64, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74} {p2, p4, p6, p17, p19, p21, p22, p23, p24, p25, p26, p27} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U93#(tt(),IL,M,N) -> mark#(N) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(take(X1,X2)) -> a__take#(mark(X1),mark(X2)) p7: a__take#(s(M),cons(N,IL)) -> a__U91#(a__isNatIList(IL),IL,M,N) p8: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p9: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p10: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p12: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p13: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p14: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p15: mark#(U91(X1,X2,X3,X4)) -> a__U91#(mark(X1),X2,X3,X4) p16: mark#(U81(X)) -> mark#(X) p17: mark#(length(X)) -> mark#(X) p18: mark#(length(X)) -> a__length#(mark(X)) p19: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p20: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p21: a__U72#(tt(),L) -> mark#(L) p22: mark#(U72(X1,X2)) -> mark#(X1) p23: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p24: a__U72#(tt(),L) -> a__length#(mark(L)) p25: mark#(U71(X1,X2,X3)) -> mark#(X1) p26: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p27: mark#(U62(X)) -> mark#(X) p28: mark#(U61(X1,X2)) -> mark#(X1) p29: mark#(U52(X)) -> mark#(X) p30: mark#(U51(X1,X2)) -> mark#(X1) p31: mark#(U42(X)) -> mark#(X) p32: mark#(U41(X1,X2)) -> mark#(X1) p33: mark#(U31(X)) -> mark#(X) p34: mark#(U21(X)) -> mark#(X) p35: mark#(U11(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U93#_A(x1,x2,x3,x4) = ((0,0),(1,0)) x4 + (7,15) tt_A() = (0,14) mark#_A(x1) = ((0,0),(1,0)) x1 + (7,13) s_A(x1) = ((1,0),(0,0)) x1 + (0,12) cons_A(x1,x2) = ((1,0),(0,0)) x1 + x2 take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (6,10) a__take#_A(x1,x2) = ((0,0),(1,0)) x2 + (7,18) mark_A(x1) = x1 + (0,11) a__U91#_A(x1,x2,x3,x4) = ((0,0),(1,0)) x4 + (7,16) a__isNatIList_A(x1) = ((0,0),(1,0)) x1 + (0,18) a__U92#_A(x1,x2,x3,x4) = ((0,0),(1,0)) x4 + (7,16) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (0,17) U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(0,0)) x4 + (6,10) U92_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(0,0)) x4 + (6,20) U91_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(0,0)) x4 + (6,9) U81_A(x1) = x1 + (2,1) length_A(x1) = ((1,0),(0,0)) x1 + (0,15) a__length#_A(x1) = ((0,0),(1,0)) x1 + (7,13) a__U71#_A(x1,x2,x3) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (7,13) a__isNatList_A(x1) = ((0,0),(1,0)) x1 + (0,17) a__U72#_A(x1,x2) = ((0,0),(1,0)) x2 + (7,13) U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,3) U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (0,10) U62_A(x1) = ((1,0),(0,0)) x1 + (0,4) U61_A(x1,x2) = ((1,0),(0,0)) x1 + (0,15) U52_A(x1) = ((1,0),(0,0)) x1 + (0,3) U51_A(x1,x2) = ((1,0),(1,0)) x1 + (0,6) U42_A(x1) = ((1,0),(0,0)) x1 + (0,3) U41_A(x1,x2) = x1 U31_A(x1) = x1 + (0,1) U21_A(x1) = ((1,0),(0,0)) x1 + (0,15) U11_A(x1) = ((1,0),(0,0)) x1 + (0,14) a__zeros_A() = (1,13) |0|_A() = (0,20) zeros_A() = (1,13) a__U11_A(x1) = ((1,0),(0,0)) x1 + (0,14) a__U21_A(x1) = ((1,0),(0,0)) x1 + (0,15) a__U31_A(x1) = x1 + (0,1) a__U41_A(x1,x2) = x1 a__U42_A(x1) = ((1,0),(0,0)) x1 + (0,14) a__U51_A(x1,x2) = ((1,0),(1,0)) x1 + (0,17) a__U52_A(x1) = ((1,0),(0,0)) x1 + (0,14) a__U61_A(x1,x2) = ((1,0),(0,0)) x1 + (0,15) a__U62_A(x1) = ((1,0),(0,0)) x1 + (0,14) a__U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (0,14) a__U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,13) a__length_A(x1) = ((1,0),(0,0)) x1 + (0,21) a__U81_A(x1) = x1 + (2,1) nil_A() = (1,13) a__U91_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(0,0)) x4 + (6,20) a__U92_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(0,0)) x4 + (6,20) a__U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(0,0)) x4 + (6,10) a__take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (6,20) isNatIList_A(x1) = ((0,0),(1,0)) x1 + (0,8) isNatList_A(x1) = ((0,0),(1,0)) x1 + (0,16) isNat_A(x1) = ((0,0),(1,0)) x1 + (0,7) precedence: U71 = a__U71 > U52 > mark# = a__length# = a__U71# = a__U72# > a__take# = a__U91# > s = U72 = a__U72 > a__isNatList = isNatList > tt = mark = a__isNatIList = U61 = a__zeros = a__U11 = a__U21 = a__U31 = a__U41 = a__U42 = a__U51 = a__U52 = a__U61 = a__U62 > U93 = U91 = zeros = a__U91 = a__U92 = a__U93 = a__take > take > a__isNat = U11 > cons > |0| = isNat > U42 > length = U41 = a__length = isNatIList > U31 > a__U93# = a__U92# = U92 = U81 = U62 = U51 = U21 = a__U81 = nil partial status: pi(a__U93#) = [] pi(tt) = [] pi(mark#) = [] pi(s) = [] pi(cons) = [2] pi(take) = [] pi(a__take#) = [] pi(mark) = [1] pi(a__U91#) = [] pi(a__isNatIList) = [] pi(a__U92#) = [] pi(a__isNat) = [] pi(U93) = [] pi(U92) = [] pi(U91) = [] pi(U81) = [] pi(length) = [] pi(a__length#) = [] pi(a__U71#) = [] pi(a__isNatList) = [] pi(a__U72#) = [] pi(U72) = [] pi(U71) = [] pi(U62) = [] pi(U61) = [] pi(U52) = [] pi(U51) = [] pi(U42) = [] pi(U41) = [] pi(U31) = [] pi(U21) = [] pi(U11) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U21) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__U51) = [] pi(a__U52) = [] pi(a__U61) = [] pi(a__U62) = [] pi(a__U71) = [] pi(a__U72) = [] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [] pi(isNatIList) = [] pi(isNatList) = [] pi(isNat) = [] The next rules are strictly ordered: p6 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U93#(tt(),IL,M,N) -> mark#(N) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: a__take#(s(M),cons(N,IL)) -> a__U91#(a__isNatIList(IL),IL,M,N) p7: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p8: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p9: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p11: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p13: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U91(X1,X2,X3,X4)) -> a__U91#(mark(X1),X2,X3,X4) p15: mark#(U81(X)) -> mark#(X) p16: mark#(length(X)) -> mark#(X) p17: mark#(length(X)) -> a__length#(mark(X)) p18: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p19: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p20: a__U72#(tt(),L) -> mark#(L) p21: mark#(U72(X1,X2)) -> mark#(X1) p22: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p23: a__U72#(tt(),L) -> a__length#(mark(L)) p24: mark#(U71(X1,X2,X3)) -> mark#(X1) p25: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p26: mark#(U62(X)) -> mark#(X) p27: mark#(U61(X1,X2)) -> mark#(X1) p28: mark#(U52(X)) -> mark#(X) p29: mark#(U51(X1,X2)) -> mark#(X1) p30: mark#(U42(X)) -> mark#(X) p31: mark#(U41(X1,X2)) -> mark#(X1) p32: mark#(U31(X)) -> mark#(X) p33: mark#(U21(X)) -> mark#(X) p34: mark#(U11(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, 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__U93#(tt(),IL,M,N) -> mark#(N) p2: mark#(U11(X)) -> mark#(X) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U31(X)) -> mark#(X) p5: mark#(U41(X1,X2)) -> mark#(X1) p6: mark#(U42(X)) -> mark#(X) p7: mark#(U51(X1,X2)) -> mark#(X1) p8: mark#(U52(X)) -> mark#(X) p9: mark#(U61(X1,X2)) -> mark#(X1) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p12: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p13: a__U72#(tt(),L) -> a__length#(mark(L)) p14: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p15: a__U72#(tt(),L) -> mark#(L) p16: mark#(U71(X1,X2,X3)) -> mark#(X1) p17: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p18: mark#(U72(X1,X2)) -> mark#(X1) p19: mark#(length(X)) -> a__length#(mark(X)) p20: mark#(length(X)) -> mark#(X) p21: mark#(U81(X)) -> mark#(X) p22: mark#(U91(X1,X2,X3,X4)) -> a__U91#(mark(X1),X2,X3,X4) p23: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p24: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p25: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p26: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p27: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p28: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p29: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p30: mark#(take(X1,X2)) -> mark#(X1) p31: mark#(take(X1,X2)) -> mark#(X2) p32: mark#(cons(X1,X2)) -> mark#(X1) p33: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U93#_A(x1,x2,x3,x4) = ((1,0),(1,0)) x4 + (6,7) tt_A() = (0,3) mark#_A(x1) = ((1,0),(1,0)) x1 + (5,10) U11_A(x1) = ((1,0),(0,0)) x1 + (0,3) U21_A(x1) = x1 U31_A(x1) = x1 + (0,1) U41_A(x1,x2) = x1 + ((0,0),(1,0)) x2 U42_A(x1) = ((1,0),(0,0)) x1 + (0,3) U51_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 U52_A(x1) = x1 U61_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,4) U62_A(x1) = x1 + (0,4) U71_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (6,0) a__U71#_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (7,11) mark_A(x1) = ((1,0),(1,1)) x1 a__U72#_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (7,11) a__isNat_A(x1) = (0,3) a__length#_A(x1) = ((1,0),(0,0)) x1 + (7,11) cons_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 a__isNatList_A(x1) = ((0,0),(1,0)) x1 U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (6,1) length_A(x1) = ((1,0),(1,1)) x1 + (6,0) U81_A(x1) = ((1,0),(0,0)) x1 + (4,9) U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(0,0)) x4 + (7,4) a__U91#_A(x1,x2,x3,x4) = ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(0,0)) x4 + (9,5) a__U92#_A(x1,x2,x3,x4) = ((0,0),(1,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(0,0)) x4 + (8,6) U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(1,0)) x4 + (7,0) U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(1,0)) x4 + (7,2) take_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (7,11) s_A(x1) = ((1,0),(0,0)) x1 + (0,1) a__zeros_A() = (4,4) |0|_A() = (0,0) zeros_A() = (4,3) a__U11_A(x1) = ((1,0),(0,0)) x1 + (0,3) a__U21_A(x1) = x1 a__U31_A(x1) = x1 + (0,1) a__U41_A(x1,x2) = x1 + ((0,0),(1,0)) x2 a__U42_A(x1) = ((1,0),(0,0)) x1 + (0,3) a__isNatIList_A(x1) = ((0,0),(1,0)) x1 + (0,3) a__U51_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 a__U52_A(x1) = x1 a__U61_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,4) a__U62_A(x1) = x1 + (0,4) a__U71_A(x1,x2,x3) = x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (6,0) a__U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (6,2) a__length_A(x1) = ((1,0),(1,1)) x1 + (6,0) a__U81_A(x1) = ((1,0),(0,0)) x1 + (4,12) nil_A() = (3,3) a__U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (7,10) a__U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (7,6) a__U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (7,8) a__take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (7,11) isNatIList_A(x1) = ((0,0),(1,0)) x1 + (0,3) isNatList_A(x1) = ((0,0),(1,0)) x1 isNat_A(x1) = (0,3) precedence: U93 > mark# = a__U91# > a__U93# > U72 = a__U72 > a__U71# = a__U72# = a__length# > U31 = U41 = U61 = U71 = mark = a__isNatList = length = U81 = U91 = take = s = a__U31 = a__U41 = a__isNatIList = a__U51 = a__U61 = a__U71 = a__length = a__U81 = a__U91 = a__U92 = a__U93 = a__take = isNatIList > U42 = a__U42 > cons = a__zeros = a__U62 > tt = U21 = U51 = U52 = U62 = a__isNat = a__U92# = |0| = zeros = a__U11 = a__U21 = a__U52 = nil = isNatList = isNat > U11 = U92 partial status: pi(a__U93#) = [] pi(tt) = [] pi(mark#) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(U42) = [] pi(U51) = [] pi(U52) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [] pi(a__U71#) = [] pi(mark) = [] pi(a__U72#) = [] pi(a__isNat) = [] pi(a__length#) = [] pi(cons) = [] pi(a__isNatList) = [] pi(U72) = [] pi(length) = [] pi(U81) = [] pi(U91) = [] pi(a__U91#) = [] pi(a__U92#) = [] pi(U92) = [] pi(U93) = [] pi(take) = [] pi(s) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U21) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__isNatIList) = [] pi(a__U51) = [] pi(a__U52) = [] pi(a__U61) = [] pi(a__U62) = [] pi(a__U71) = [] pi(a__U72) = [] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [] pi(isNatIList) = [] pi(isNatList) = [] pi(isNat) = [] 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__U93#(tt(),IL,M,N) -> mark#(N) p2: mark#(U11(X)) -> mark#(X) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U31(X)) -> mark#(X) p5: mark#(U41(X1,X2)) -> mark#(X1) p6: mark#(U42(X)) -> mark#(X) p7: mark#(U51(X1,X2)) -> mark#(X1) p8: mark#(U52(X)) -> mark#(X) p9: mark#(U61(X1,X2)) -> mark#(X1) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p12: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p13: a__U72#(tt(),L) -> a__length#(mark(L)) p14: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p15: a__U72#(tt(),L) -> mark#(L) p16: mark#(U71(X1,X2,X3)) -> mark#(X1) p17: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p18: mark#(U72(X1,X2)) -> mark#(X1) p19: mark#(length(X)) -> mark#(X) p20: mark#(U81(X)) -> mark#(X) p21: mark#(U91(X1,X2,X3,X4)) -> a__U91#(mark(X1),X2,X3,X4) p22: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p23: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p24: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p25: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p26: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p27: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p28: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p29: mark#(take(X1,X2)) -> mark#(X1) p30: mark#(take(X1,X2)) -> mark#(X2) p31: mark#(cons(X1,X2)) -> mark#(X1) p32: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U93#(tt(),IL,M,N) -> mark#(N) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p8: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p10: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p11: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(U91(X1,X2,X3,X4)) -> a__U91#(mark(X1),X2,X3,X4) p13: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p14: mark#(U81(X)) -> mark#(X) p15: mark#(length(X)) -> mark#(X) p16: mark#(U72(X1,X2)) -> mark#(X1) p17: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p18: a__U72#(tt(),L) -> mark#(L) p19: mark#(U71(X1,X2,X3)) -> mark#(X1) p20: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p21: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p22: a__U72#(tt(),L) -> a__length#(mark(L)) p23: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p24: mark#(U62(X)) -> mark#(X) p25: mark#(U61(X1,X2)) -> mark#(X1) p26: mark#(U52(X)) -> mark#(X) p27: mark#(U51(X1,X2)) -> mark#(X1) p28: mark#(U42(X)) -> mark#(X) p29: mark#(U41(X1,X2)) -> mark#(X1) p30: mark#(U31(X)) -> mark#(X) p31: mark#(U21(X)) -> mark#(X) p32: mark#(U11(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U93#_A(x1,x2,x3,x4) = x1 + ((1,0),(1,1)) x3 + ((1,0),(1,1)) x4 + (1,10) tt_A() = (7,15) mark#_A(x1) = ((1,0),(0,0)) x1 + (5,21) s_A(x1) = ((1,0),(0,0)) x1 + (0,17) cons_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 take_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (43,0) U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(0,0)) x4 + (36,9) mark_A(x1) = ((1,0),(1,1)) x1 U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (36,22) a__U92#_A(x1,x2,x3,x4) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + x4 + (9,20) a__isNat_A(x1) = (7,16) U91_A(x1,x2,x3,x4) = x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (36,21) a__U91#_A(x1,x2,x3,x4) = x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + ((1,0),(1,1)) x4 + (3,22) U81_A(x1) = ((1,0),(0,0)) x1 + (36,3) length_A(x1) = ((1,0),(0,0)) x1 + (14,8) U72_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (7,1) a__U72#_A(x1,x2) = ((1,0),(0,0)) x2 + (6,17) U71_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (7,13) a__U71#_A(x1,x2,x3) = ((1,0),(0,0)) x2 + (6,17) a__length#_A(x1) = ((1,0),(0,0)) x1 + (6,17) a__isNatList_A(x1) = ((0,0),(1,0)) x1 + (7,8) U62_A(x1) = x1 + (0,6) U61_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,17) U52_A(x1) = x1 U51_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (0,1) U42_A(x1) = x1 U41_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,10) U31_A(x1) = x1 + (0,1) U21_A(x1) = ((1,0),(0,0)) x1 + (0,15) U11_A(x1) = ((1,0),(0,0)) x1 + (0,15) a__zeros_A() = (6,7) |0|_A() = (0,1) zeros_A() = (6,2) a__U11_A(x1) = ((1,0),(0,0)) x1 + (0,15) a__U21_A(x1) = ((1,0),(0,0)) x1 + (0,15) a__U31_A(x1) = x1 + (0,1) a__U41_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,10) a__U42_A(x1) = x1 a__isNatIList_A(x1) = ((0,0),(1,0)) x1 + (7,10) a__U51_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (0,1) a__U52_A(x1) = x1 a__U61_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,17) a__U62_A(x1) = x1 + (0,6) a__U71_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (7,13) a__U72_A(x1,x2) = x1 + ((1,0),(0,0)) x2 + (7,3) a__length_A(x1) = ((1,0),(0,0)) x1 + (14,21) a__U81_A(x1) = ((1,0),(0,0)) x1 + (36,3) nil_A() = (43,2) a__U91_A(x1,x2,x3,x4) = x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (36,31) a__U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (36,23) a__U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (36,44) a__take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (43,42) isNatIList_A(x1) = ((0,0),(1,0)) x1 + (7,10) isNatList_A(x1) = ((0,0),(1,0)) x1 + (7,2) isNat_A(x1) = (7,9) precedence: mark# = a__U91# = a__U72# = a__U71# = a__length# > length > U21 = a__U21 > U93 > a__isNatIList = isNatIList > mark = a__isNat = U62 = U61 = U31 = a__U11 = a__U31 = a__U41 = a__U42 = a__U61 = a__U62 = a__length = a__U93 = isNat > a__U93# = a__U92# = a__zeros > cons > tt = U71 = a__isNatList = a__U51 = a__U52 = a__U71 > take = U91 = U81 = a__U81 = nil = a__U91 = a__take > s = a__U72 > U72 > U51 = isNatList > U52 > U92 = U11 = zeros = a__U92 > U42 = U41 = |0| partial status: pi(a__U93#) = [] pi(tt) = [] pi(mark#) = [] pi(s) = [] pi(cons) = [] pi(take) = [] pi(U93) = [] pi(mark) = [1] pi(U92) = [] pi(a__U92#) = [4] pi(a__isNat) = [] pi(U91) = [] pi(a__U91#) = [] pi(U81) = [] pi(length) = [] pi(U72) = [] pi(a__U72#) = [] pi(U71) = [] pi(a__U71#) = [] pi(a__length#) = [] pi(a__isNatList) = [] pi(U62) = [] pi(U61) = [] pi(U52) = [] pi(U51) = [] pi(U42) = [] pi(U41) = [] pi(U31) = [] pi(U21) = [] pi(U11) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U21) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__isNatIList) = [] pi(a__U51) = [] pi(a__U52) = [] pi(a__U61) = [] pi(a__U62) = [] pi(a__U71) = [] pi(a__U72) = [] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [2] pi(isNatIList) = [] pi(isNatList) = [] pi(isNat) = [] The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U93#(tt(),IL,M,N) -> mark#(N) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p8: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p10: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U91(X1,X2,X3,X4)) -> a__U91#(mark(X1),X2,X3,X4) p12: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p13: mark#(U81(X)) -> mark#(X) p14: mark#(length(X)) -> mark#(X) p15: mark#(U72(X1,X2)) -> mark#(X1) p16: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p17: a__U72#(tt(),L) -> mark#(L) p18: mark#(U71(X1,X2,X3)) -> mark#(X1) p19: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p20: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p21: a__U72#(tt(),L) -> a__length#(mark(L)) p22: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p23: mark#(U62(X)) -> mark#(X) p24: mark#(U61(X1,X2)) -> mark#(X1) p25: mark#(U52(X)) -> mark#(X) p26: mark#(U51(X1,X2)) -> mark#(X1) p27: mark#(U42(X)) -> mark#(X) p28: mark#(U41(X1,X2)) -> mark#(X1) p29: mark#(U31(X)) -> mark#(X) p30: mark#(U21(X)) -> mark#(X) p31: mark#(U11(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p10, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U93#(tt(),IL,M,N) -> mark#(N) p2: mark#(U11(X)) -> mark#(X) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U31(X)) -> mark#(X) p5: mark#(U41(X1,X2)) -> mark#(X1) p6: mark#(U42(X)) -> mark#(X) p7: mark#(U51(X1,X2)) -> mark#(X1) p8: mark#(U52(X)) -> mark#(X) p9: mark#(U61(X1,X2)) -> mark#(X1) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p12: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p13: a__U72#(tt(),L) -> a__length#(mark(L)) p14: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p15: a__U72#(tt(),L) -> mark#(L) p16: mark#(U71(X1,X2,X3)) -> mark#(X1) p17: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p18: mark#(U72(X1,X2)) -> mark#(X1) p19: mark#(length(X)) -> mark#(X) p20: mark#(U81(X)) -> mark#(X) p21: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p22: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p23: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p24: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p25: mark#(take(X1,X2)) -> mark#(X1) p26: mark#(take(X1,X2)) -> mark#(X2) p27: mark#(cons(X1,X2)) -> mark#(X1) p28: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U93#_A(x1,x2,x3,x4) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x4 + (14,46) tt_A() = (15,31) mark#_A(x1) = ((0,0),(1,0)) x1 + (14,30) U11_A(x1) = ((1,0),(1,0)) x1 + (0,16) U21_A(x1) = ((1,0),(0,0)) x1 + (0,31) U31_A(x1) = x1 + (0,1) U41_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,28) U42_A(x1) = x1 U51_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 U52_A(x1) = x1 U61_A(x1,x2) = ((1,0),(1,1)) x1 + (0,1) U62_A(x1) = ((1,0),(0,0)) x1 + (0,47) U71_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (3,9) a__U71#_A(x1,x2,x3) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + (14,17) mark_A(x1) = x1 a__U72#_A(x1,x2) = ((0,0),(1,0)) x2 + (14,32) a__isNat_A(x1) = (15,31) a__length#_A(x1) = ((0,0),(1,0)) x1 + (14,32) cons_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (0,25) a__isNatList_A(x1) = ((0,0),(1,0)) x1 + (15,15) U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (3,23) length_A(x1) = x1 + (18,0) U81_A(x1) = ((1,0),(0,0)) x1 + (1,28) U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (17,45) U92_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (17,44) U93_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (17,43) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + (32,57) s_A(x1) = ((1,0),(1,0)) x1 + (0,4) a__zeros_A() = (4,30) |0|_A() = (0,29) zeros_A() = (4,30) a__U11_A(x1) = ((1,0),(1,0)) x1 + (0,16) a__U21_A(x1) = ((1,0),(0,0)) x1 + (0,31) a__U31_A(x1) = x1 + (0,1) a__U41_A(x1,x2) = ((1,0),(0,0)) x1 + ((0,0),(1,0)) x2 + (0,28) a__U42_A(x1) = x1 a__isNatIList_A(x1) = ((0,0),(1,0)) x1 + (15,28) a__U51_A(x1,x2) = ((1,0),(1,0)) x1 + ((0,0),(1,0)) x2 a__U52_A(x1) = x1 a__U61_A(x1,x2) = ((1,0),(1,1)) x1 + (0,1) a__U62_A(x1) = ((1,0),(0,0)) x1 + (0,47) a__U71_A(x1,x2,x3) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (3,9) a__U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (3,23) a__length_A(x1) = x1 + (18,0) a__U81_A(x1) = ((1,0),(0,0)) x1 + (1,28) nil_A() = (16,0) a__U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (17,45) a__U92_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (17,44) a__U93_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (17,43) a__take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + (32,57) isNatIList_A(x1) = ((0,0),(1,0)) x1 + (15,28) isNatList_A(x1) = ((0,0),(1,0)) x1 + (15,15) isNat_A(x1) = (15,31) precedence: a__isNatIList = isNatIList > U31 = U41 = a__U31 = a__U41 > tt = mark# = U42 = U51 = mark = a__isNat = a__isNatList = U92 = take = a__U11 = a__U21 = a__U42 = a__U51 = a__U52 = a__U61 = a__U62 = a__U91 = a__U92 = a__U93 = a__take > a__U93# > U21 > a__U71# = a__U72# = a__length# > U71 = length = a__U71 = a__length > U72 = U91 = a__U72 > U52 > isNat > U62 > |0| > a__zeros > cons > isNatList > U61 > s = zeros > U93 = a__U81 > nil > U81 > U11 partial status: pi(a__U93#) = [] pi(tt) = [] pi(mark#) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(U42) = [] pi(U51) = [] pi(U52) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [] pi(a__U71#) = [] pi(mark) = [1] pi(a__U72#) = [] pi(a__isNat) = [] pi(a__length#) = [] pi(cons) = [] pi(a__isNatList) = [] pi(U72) = [] pi(length) = [] pi(U81) = [] pi(U91) = [] pi(U92) = [] pi(U93) = [] pi(take) = [] pi(s) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U21) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__isNatIList) = [] pi(a__U51) = [] pi(a__U52) = [] pi(a__U61) = [] pi(a__U62) = [] pi(a__U71) = [] pi(a__U72) = [] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [1] pi(isNatIList) = [] pi(isNatList) = [] pi(isNat) = [] The next rules are strictly ordered: p23 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U93#(tt(),IL,M,N) -> mark#(N) p2: mark#(U11(X)) -> mark#(X) p3: mark#(U21(X)) -> mark#(X) p4: mark#(U31(X)) -> mark#(X) p5: mark#(U41(X1,X2)) -> mark#(X1) p6: mark#(U42(X)) -> mark#(X) p7: mark#(U51(X1,X2)) -> mark#(X1) p8: mark#(U52(X)) -> mark#(X) p9: mark#(U61(X1,X2)) -> mark#(X1) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p12: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p13: a__U72#(tt(),L) -> a__length#(mark(L)) p14: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p15: a__U72#(tt(),L) -> mark#(L) p16: mark#(U71(X1,X2,X3)) -> mark#(X1) p17: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p18: mark#(U72(X1,X2)) -> mark#(X1) p19: mark#(length(X)) -> mark#(X) p20: mark#(U81(X)) -> mark#(X) p21: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p22: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p23: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p24: mark#(take(X1,X2)) -> mark#(X1) p25: mark#(take(X1,X2)) -> mark#(X2) p26: mark#(cons(X1,X2)) -> mark#(X1) p27: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U81(X)) -> mark#(X) p10: mark#(length(X)) -> mark#(X) p11: mark#(U72(X1,X2)) -> mark#(X1) p12: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p13: a__U72#(tt(),L) -> mark#(L) p14: mark#(U71(X1,X2,X3)) -> mark#(X1) p15: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) p16: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p17: a__U72#(tt(),L) -> a__length#(mark(L)) p18: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p19: mark#(U62(X)) -> mark#(X) p20: mark#(U61(X1,X2)) -> mark#(X1) p21: mark#(U52(X)) -> mark#(X) p22: mark#(U51(X1,X2)) -> mark#(X1) p23: mark#(U42(X)) -> mark#(X) p24: mark#(U41(X1,X2)) -> mark#(X1) p25: mark#(U31(X)) -> mark#(X) p26: mark#(U21(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = ((0,0),(1,0)) x1 + (0,7) U11_A(x1) = x1 + (0,8) s_A(x1) = ((1,0),(1,0)) x1 + (0,6) cons_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (0,16) take_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (22,39) U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(0,0)) x4 + (17,6) U92_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(0,0)) x4 + (17,13) U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(0,0)) x4 + (17,17) U81_A(x1) = ((1,0),(0,0)) x1 + (0,6) length_A(x1) = ((1,0),(1,1)) x1 + (8,8) U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (3,19) a__U72#_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (0,10) mark_A(x1) = ((1,0),(1,1)) x1 + (0,18) tt_A() = (5,0) U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + (3,1) a__U71#_A(x1,x2,x3) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (0,10) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (5,1) a__length#_A(x1) = ((0,0),(1,0)) x1 + (0,15) a__isNatList_A(x1) = ((0,0),(1,0)) x1 + (5,0) U62_A(x1) = ((1,0),(0,0)) x1 + (0,1) U61_A(x1,x2) = ((1,0),(0,0)) x1 + (0,17) U52_A(x1) = ((1,0),(0,0)) x1 U51_A(x1,x2) = ((1,0),(0,0)) x1 U42_A(x1) = ((1,0),(0,0)) x1 + (0,19) U41_A(x1,x2) = x1 + (0,20) U31_A(x1) = ((1,0),(1,0)) x1 + (0,1) U21_A(x1) = ((1,0),(0,0)) x1 a__zeros_A() = (0,17) |0|_A() = (0,22) zeros_A() = (0,0) a__U11_A(x1) = x1 + (0,8) a__U21_A(x1) = ((1,0),(0,0)) x1 a__U31_A(x1) = ((1,0),(1,0)) x1 + (0,2) a__U41_A(x1,x2) = x1 + (0,20) a__U42_A(x1) = ((1,0),(0,0)) x1 + (0,19) a__isNatIList_A(x1) = ((0,0),(1,0)) x1 + (5,21) a__U51_A(x1,x2) = ((1,0),(0,0)) x1 a__U52_A(x1) = ((1,0),(0,0)) x1 a__U61_A(x1,x2) = ((1,0),(1,0)) x1 + (0,17) a__U62_A(x1) = ((1,0),(0,0)) x1 + (0,19) a__U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(0,0)) x3 + (3,22) a__U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (3,20) a__length_A(x1) = ((1,0),(1,1)) x1 + (8,9) a__U81_A(x1) = ((1,0),(0,0)) x1 + (0,23) nil_A() = (1,0) a__U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(0,0)) x4 + (17,49) a__U92_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(0,0)) x4 + (17,48) a__U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + ((1,0),(0,0)) x3 + ((1,0),(0,0)) x4 + (17,40) a__take_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (22,39) isNatIList_A(x1) = ((0,0),(1,0)) x1 + (5,1) isNatList_A(x1) = ((0,0),(1,0)) x1 + (5,0) isNat_A(x1) = ((0,0),(1,0)) x1 + (5,1) precedence: |0| > nil > mark# > a__isNat > U81 > a__U31 > a__isNatList = U61 = a__U61 = isNatList > s = mark = U52 = U42 = a__zeros = zeros = a__U11 = a__U21 = a__U41 = a__U42 = a__isNatIList = a__U51 = a__U52 = a__U62 = a__U72 = isNatIList > U92 = a__U81 = a__U91 = a__U92 = a__U93 = a__take > cons > U31 > U11 > a__U71 = a__length > take = U91 = U71 > length > U41 > U93 = U72 = a__U72# = tt = a__U71# = a__length# = U62 = U51 = U21 = isNat partial status: pi(mark#) = [] pi(U11) = [1] pi(s) = [] pi(cons) = [] pi(take) = [] pi(U93) = [] pi(U92) = [] pi(U91) = [] pi(U81) = [] pi(length) = [] pi(U72) = [] pi(a__U72#) = [] pi(mark) = [1] pi(tt) = [] pi(U71) = [] pi(a__U71#) = [] pi(a__isNat) = [] pi(a__length#) = [] pi(a__isNatList) = [] pi(U62) = [] pi(U61) = [] pi(U52) = [] pi(U51) = [] pi(U42) = [] pi(U41) = [] pi(U31) = [] pi(U21) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U21) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__isNatIList) = [] pi(a__U51) = [] pi(a__U52) = [] pi(a__U61) = [] pi(a__U62) = [] pi(a__U71) = [] pi(a__U72) = [] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [] pi(isNatIList) = [] pi(isNatList) = [] pi(isNat) = [] The next rules are strictly ordered: p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U81(X)) -> mark#(X) p10: mark#(length(X)) -> mark#(X) p11: mark#(U72(X1,X2)) -> mark#(X1) p12: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p13: a__U72#(tt(),L) -> mark#(L) p14: mark#(U71(X1,X2,X3)) -> mark#(X1) p15: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p16: a__U72#(tt(),L) -> a__length#(mark(L)) p17: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p18: mark#(U62(X)) -> mark#(X) p19: mark#(U61(X1,X2)) -> mark#(X1) p20: mark#(U52(X)) -> mark#(X) p21: mark#(U51(X1,X2)) -> mark#(X1) p22: mark#(U42(X)) -> mark#(X) p23: mark#(U41(X1,X2)) -> mark#(X1) p24: mark#(U31(X)) -> mark#(X) p25: mark#(U21(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U31(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> mark#(X1) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U51(X1,X2)) -> mark#(X1) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U61(X1,X2)) -> mark#(X1) p9: mark#(U62(X)) -> mark#(X) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p12: a__U72#(tt(),L) -> a__length#(mark(L)) p13: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p14: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p15: a__U72#(tt(),L) -> mark#(L) p16: mark#(U72(X1,X2)) -> mark#(X1) p17: mark#(length(X)) -> mark#(X) p18: mark#(U81(X)) -> mark#(X) p19: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p20: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p21: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p22: mark#(take(X1,X2)) -> mark#(X1) p23: mark#(take(X1,X2)) -> mark#(X2) p24: mark#(cons(X1,X2)) -> mark#(X1) p25: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76 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 + (0,23) U11_A(x1) = x1 + (0,1) U21_A(x1) = ((1,0),(0,0)) x1 + (0,24) U31_A(x1) = ((1,0),(0,0)) x1 + (0,35) U41_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,24) U42_A(x1) = ((1,0),(0,0)) x1 + (0,1) U51_A(x1,x2) = ((1,0),(1,0)) x1 + (0,35) U52_A(x1) = ((1,0),(0,0)) x1 + (0,35) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,27) U62_A(x1) = x1 + (0,1) U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + (26,0) U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (26,0) a__U72#_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + (1,14) mark_A(x1) = x1 + (0,34) tt_A() = (15,24) a__length#_A(x1) = ((1,0),(1,0)) x1 + (16,53) cons_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (0,52) a__U71#_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + (1,53) a__isNatList_A(x1) = ((0,0),(1,0)) x1 + (15,51) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (15,24) length_A(x1) = ((1,0),(1,0)) x1 + (41,0) U81_A(x1) = x1 + (1,0) U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,22) U92_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,35) U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,68) take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (16,69) s_A(x1) = ((1,0),(0,0)) x1 a__zeros_A() = (1,54) |0|_A() = (0,0) zeros_A() = (1,25) a__U11_A(x1) = x1 + (0,1) a__U21_A(x1) = ((1,0),(0,0)) x1 + (0,24) a__U31_A(x1) = ((1,0),(0,0)) x1 + (0,35) a__U41_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,24) a__U42_A(x1) = ((1,0),(0,0)) x1 + (0,25) a__isNatIList_A(x1) = ((0,0),(1,0)) x1 + (15,64) a__U51_A(x1,x2) = ((1,0),(1,0)) x1 + (0,35) a__U52_A(x1) = ((1,0),(0,0)) x1 + (0,35) a__U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (0,27) a__U62_A(x1) = x1 + (0,1) a__U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + (26,0) a__U72_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (26,0) a__length_A(x1) = ((1,0),(1,0)) x1 + (41,0) a__U81_A(x1) = x1 + (1,0) nil_A() = (1,24) a__U91_A(x1,x2,x3,x4) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,55) a__U92_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,69) a__U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + ((1,0),(1,0)) x3 + ((1,0),(1,0)) x4 + (1,68) a__take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (16,103) isNatIList_A(x1) = ((0,0),(1,0)) x1 + (15,31) isNatList_A(x1) = ((0,0),(1,0)) x1 + (15,51) isNat_A(x1) = ((0,0),(1,0)) x1 + (15,0) precedence: a__isNat > a__isNatList = U92 = a__length = isNatList > U21 = tt = a__U21 = isNat > isNatIList > mark = a__U61 = a__U62 = a__U81 = a__U92 = a__U93 > U81 > mark# = U41 = a__U41 = a__isNatIList > a__U72# = a__length# = a__U71# = take > a__zeros = a__take > U31 = U42 = U51 = U52 = |0| = zeros = a__U31 = a__U42 = a__U51 = a__U52 > U61 = U71 = U72 = U91 = s = a__U71 = a__U72 = nil = a__U91 > U11 = U62 = cons = length = U93 = a__U11 partial status: pi(mark#) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(U42) = [] pi(U51) = [] pi(U52) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [] pi(U72) = [] pi(a__U72#) = [] pi(mark) = [1] pi(tt) = [] pi(a__length#) = [] pi(cons) = [] pi(a__U71#) = [] pi(a__isNatList) = [] pi(a__isNat) = [] pi(length) = [] pi(U81) = [] pi(U91) = [] pi(U92) = [] pi(U93) = [] pi(take) = [] pi(s) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U21) = [] pi(a__U31) = [] pi(a__U41) = [1] pi(a__U42) = [] pi(a__isNatIList) = [] pi(a__U51) = [] pi(a__U52) = [] pi(a__U61) = [] pi(a__U62) = [] pi(a__U71) = [] pi(a__U72) = [] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [] pi(isNatIList) = [] pi(isNatList) = [] pi(isNat) = [] 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: mark#(U11(X)) -> mark#(X) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U31(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> mark#(X1) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U51(X1,X2)) -> mark#(X1) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U61(X1,X2)) -> mark#(X1) p9: mark#(U62(X)) -> mark#(X) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: a__U72#(tt(),L) -> a__length#(mark(L)) p12: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p13: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p14: a__U72#(tt(),L) -> mark#(L) p15: mark#(U72(X1,X2)) -> mark#(X1) p16: mark#(length(X)) -> mark#(X) p17: mark#(U81(X)) -> mark#(X) p18: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p19: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p20: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p21: mark#(take(X1,X2)) -> mark#(X1) p22: mark#(take(X1,X2)) -> mark#(X2) p23: mark#(cons(X1,X2)) -> mark#(X1) p24: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p11, p12, p13} {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p2: a__U72#(tt(),L) -> a__length#(mark(L)) p3: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U71#_A(x1,x2,x3) = ((0,0),(1,0)) x1 + x2 + (1,1) tt_A() = (7,5) a__U72#_A(x1,x2) = x2 + (1,6) a__isNat_A(x1) = ((1,0),(0,0)) x1 + (2,7) a__length#_A(x1) = x1 + (1,4) mark_A(x1) = x1 cons_A(x1,x2) = ((1,0),(1,1)) x2 a__isNatList_A(x1) = ((1,0),(1,1)) x1 + (2,8) a__zeros_A() = (0,6) |0|_A() = (8,7) zeros_A() = (0,6) a__U11_A(x1) = ((1,0),(0,0)) x1 + (0,6) a__U21_A(x1) = ((1,0),(0,0)) x1 + (0,6) a__U31_A(x1) = ((1,0),(0,0)) x1 + (4,5) a__U41_A(x1,x2) = x2 + (7,0) a__U42_A(x1) = x1 a__isNatIList_A(x1) = x1 + (7,0) a__U51_A(x1,x2) = ((1,0),(1,0)) x2 + (2,4) a__U52_A(x1) = ((1,0),(1,0)) x1 + (0,1) a__U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (0,1) a__U62_A(x1) = ((1,0),(0,0)) x1 + (0,12) a__U71_A(x1,x2,x3) = ((1,0),(1,1)) x2 a__U72_A(x1,x2) = ((1,0),(1,1)) x2 s_A(x1) = ((1,0),(1,1)) x1 a__length_A(x1) = x1 a__U81_A(x1) = ((1,0),(0,0)) x1 + (1,9) nil_A() = (8,8) a__U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (0,8) a__U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (0,8) a__U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (0,8) take_A(x1,x2) = x1 + x2 + (0,8) a__take_A(x1,x2) = x1 + x2 + (0,8) U11_A(x1) = ((1,0),(0,0)) x1 + (0,6) U21_A(x1) = ((1,0),(0,0)) x1 + (0,6) U31_A(x1) = ((1,0),(0,0)) x1 + (4,5) U41_A(x1,x2) = x2 + (7,0) U42_A(x1) = x1 isNatIList_A(x1) = x1 + (7,0) U51_A(x1,x2) = ((1,0),(1,0)) x2 + (2,4) U52_A(x1) = ((1,0),(1,0)) x1 + (0,1) U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (0,1) U62_A(x1) = ((1,0),(0,0)) x1 + (0,12) U71_A(x1,x2,x3) = ((1,0),(1,1)) x2 U72_A(x1,x2) = ((1,0),(1,1)) x2 length_A(x1) = x1 U81_A(x1) = ((1,0),(0,0)) x1 + (1,9) U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (0,8) U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (0,8) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (0,8) isNatList_A(x1) = ((1,0),(1,1)) x1 + (2,8) isNat_A(x1) = ((1,0),(0,0)) x1 + (2,7) precedence: a__length# > a__U71# > tt = a__U72# = a__isNat = mark = cons = a__isNatList = a__zeros = |0| = zeros = a__U11 = a__U21 = a__U31 = a__U41 = a__U42 = a__isNatIList = a__U51 = a__U52 = a__U61 = a__U62 = a__U71 = a__U72 = s = a__length = a__U81 = nil = a__U91 = a__U92 = a__U93 = take = a__take = U11 = U21 = U31 = U41 = U42 = isNatIList = U51 = U52 = U61 = U62 = U71 = U72 = length = U81 = U91 = U92 = U93 = isNatList = isNat partial status: pi(a__U71#) = [2] pi(tt) = [] pi(a__U72#) = [2] pi(a__isNat) = [] pi(a__length#) = [1] pi(mark) = [] pi(cons) = [] pi(a__isNatList) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U21) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__U42) = [] pi(a__isNatIList) = [] pi(a__U51) = [] pi(a__U52) = [] pi(a__U61) = [] pi(a__U62) = [] pi(a__U71) = [] pi(a__U72) = [] pi(s) = [] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(take) = [] pi(a__take) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(U42) = [] pi(isNatIList) = [] pi(U51) = [] pi(U52) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [] pi(U72) = [] pi(length) = [] pi(U81) = [] pi(U91) = [] pi(U92) = [] pi(U93) = [] pi(isNatList) = [] pi(isNat) = [] 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__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p2: a__U72#(tt(),L) -> a__length#(mark(L)) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: (no SCCs) -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U81(X)) -> mark#(X) p10: mark#(length(X)) -> mark#(X) p11: mark#(U72(X1,X2)) -> mark#(X1) p12: mark#(U71(X1,X2,X3)) -> mark#(X1) p13: mark#(U62(X)) -> mark#(X) p14: mark#(U61(X1,X2)) -> mark#(X1) p15: mark#(U52(X)) -> mark#(X) p16: mark#(U51(X1,X2)) -> mark#(X1) p17: mark#(U42(X)) -> mark#(X) p18: mark#(U41(X1,X2)) -> mark#(X1) p19: mark#(U31(X)) -> mark#(X) p20: mark#(U21(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) U11_A(x1) = x1 + (1,1) s_A(x1) = ((1,0),(1,1)) x1 + (3,3) cons_A(x1,x2) = ((1,0),(1,1)) x1 + (3,3) take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (3,3) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + x4 + (3,3) U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + x3 + x4 + (3,3) U91_A(x1,x2,x3,x4) = x1 + x4 + (3,1) U81_A(x1) = ((1,0),(1,1)) x1 + (3,3) length_A(x1) = ((1,0),(1,1)) x1 + (3,3) U72_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,3) U71_A(x1,x2,x3) = x1 + x2 + (3,1) U62_A(x1) = x1 + (3,1) U61_A(x1,x2) = ((1,0),(0,0)) x1 + (3,3) U52_A(x1) = x1 + (3,1) U51_A(x1,x2) = x1 + x2 + (3,1) U42_A(x1) = ((1,0),(1,0)) x1 + (3,3) U41_A(x1,x2) = ((1,0),(1,1)) x1 + (3,1) U31_A(x1) = ((1,0),(0,0)) x1 + (2,3) U21_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: mark# = s = take = U93 = U92 = U81 = U72 = U52 = U51 > U11 = cons = U31 > U61 > U91 = length = U62 > U71 > U42 = U41 = U21 partial status: pi(mark#) = [] pi(U11) = [] pi(s) = [] pi(cons) = [1] pi(take) = [] pi(U93) = [] pi(U92) = [] pi(U91) = [4] pi(U81) = [] pi(length) = [1] pi(U72) = [] pi(U71) = [1] pi(U62) = [1] pi(U61) = [] pi(U52) = [] pi(U51) = [] pi(U42) = [] pi(U41) = [1] pi(U31) = [] pi(U21) = [] The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U81(X)) -> mark#(X) p10: mark#(U72(X1,X2)) -> mark#(X1) p11: mark#(U71(X1,X2,X3)) -> mark#(X1) p12: mark#(U62(X)) -> mark#(X) p13: mark#(U61(X1,X2)) -> mark#(X1) p14: mark#(U52(X)) -> mark#(X) p15: mark#(U51(X1,X2)) -> mark#(X1) p16: mark#(U42(X)) -> mark#(X) p17: mark#(U41(X1,X2)) -> mark#(X1) p18: mark#(U31(X)) -> mark#(X) p19: mark#(U21(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U31(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> mark#(X1) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U51(X1,X2)) -> mark#(X1) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U61(X1,X2)) -> mark#(X1) p9: mark#(U62(X)) -> mark#(X) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: mark#(U72(X1,X2)) -> mark#(X1) p12: mark#(U81(X)) -> mark#(X) p13: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p15: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p16: mark#(take(X1,X2)) -> mark#(X1) p17: mark#(take(X1,X2)) -> mark#(X2) p18: mark#(cons(X1,X2)) -> mark#(X1) p19: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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 + (1,2) U11_A(x1) = ((1,0),(1,1)) x1 + (2,3) U21_A(x1) = x1 + (2,3) U31_A(x1) = x1 + (2,1) U41_A(x1,x2) = ((1,0),(1,1)) x1 + (2,1) U42_A(x1) = ((1,0),(1,1)) x1 + (2,1) U51_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (2,3) U52_A(x1) = ((1,0),(1,1)) x1 + (2,3) U61_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U62_A(x1) = x1 + (2,1) U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + (2,1) U72_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (2,1) U81_A(x1) = x1 + (2,1) U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x4 + (2,1) U92_A(x1,x2,x3,x4) = x1 + x2 + x3 + (2,1) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + (2,3) take_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (2,3) cons_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (2,1) s_A(x1) = ((1,0),(0,0)) x1 + (2,3) precedence: U91 = U92 > U31 = U72 = U81 > U41 = U61 = U93 > U11 = U42 > mark# = U21 = U51 = U62 > U52 = U71 = cons > take = s partial status: pi(mark#) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [1] pi(U41) = [1] pi(U42) = [1] pi(U51) = [2] pi(U52) = [1] pi(U61) = [1] pi(U62) = [1] pi(U71) = [] pi(U72) = [] pi(U81) = [1] pi(U91) = [] pi(U92) = [] pi(U93) = [3] pi(take) = [] pi(cons) = [2] pi(s) = [] The next rules are strictly ordered: p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U31(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> mark#(X1) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U51(X1,X2)) -> mark#(X1) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U61(X1,X2)) -> mark#(X1) p9: mark#(U62(X)) -> mark#(X) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: mark#(U72(X1,X2)) -> mark#(X1) p12: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p13: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p15: mark#(take(X1,X2)) -> mark#(X1) p16: mark#(take(X1,X2)) -> mark#(X2) p17: mark#(cons(X1,X2)) -> mark#(X1) p18: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: mark#(U62(X)) -> mark#(X) p12: mark#(U61(X1,X2)) -> mark#(X1) p13: mark#(U52(X)) -> mark#(X) p14: mark#(U51(X1,X2)) -> mark#(X1) p15: mark#(U42(X)) -> mark#(X) p16: mark#(U41(X1,X2)) -> mark#(X1) p17: mark#(U31(X)) -> mark#(X) p18: mark#(U21(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) U11_A(x1) = ((1,0),(1,1)) x1 + (3,3) s_A(x1) = x1 + (3,3) cons_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (3,3) take_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (3,3) U93_A(x1,x2,x3,x4) = x1 + x2 + x4 + (1,1) U92_A(x1,x2,x3,x4) = x1 + x2 + x3 + x4 + (3,1) U91_A(x1,x2,x3,x4) = x1 + x3 + x4 + (3,3) U72_A(x1,x2) = x1 + x2 + (3,1) U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (3,1) U62_A(x1) = ((1,0),(1,1)) x1 + (3,1) U61_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) U52_A(x1) = x1 + (3,3) U51_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,1) U42_A(x1) = ((1,0),(1,0)) x1 + (3,3) U41_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) U31_A(x1) = x1 + (3,3) U21_A(x1) = ((1,0),(0,0)) x1 + (3,1) precedence: U51 > U52 > mark# = U62 > U61 > U92 = U72 = U42 > U11 = take = U93 = U71 > U91 > U41 > s = cons = U31 > U21 partial status: pi(mark#) = [] pi(U11) = [1] pi(s) = [] pi(cons) = [] pi(take) = [2] pi(U93) = [2] pi(U92) = [1] pi(U91) = [4] pi(U72) = [2] pi(U71) = [3] pi(U62) = [1] pi(U61) = [1] pi(U52) = [1] pi(U51) = [2] pi(U42) = [] pi(U41) = [2] pi(U31) = [1] pi(U21) = [] The next rules are strictly ordered: p12 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: mark#(U62(X)) -> mark#(X) p12: mark#(U52(X)) -> mark#(X) p13: mark#(U51(X1,X2)) -> mark#(X1) p14: mark#(U42(X)) -> mark#(X) p15: mark#(U41(X1,X2)) -> mark#(X1) p16: mark#(U31(X)) -> mark#(X) p17: mark#(U21(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U11(X)) -> mark#(X) p2: mark#(U21(X)) -> mark#(X) p3: mark#(U31(X)) -> mark#(X) p4: mark#(U41(X1,X2)) -> mark#(X1) p5: mark#(U42(X)) -> mark#(X) p6: mark#(U51(X1,X2)) -> mark#(X1) p7: mark#(U52(X)) -> mark#(X) p8: mark#(U62(X)) -> mark#(X) p9: mark#(U71(X1,X2,X3)) -> mark#(X1) p10: mark#(U72(X1,X2)) -> mark#(X1) p11: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p13: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p14: mark#(take(X1,X2)) -> mark#(X1) p15: mark#(take(X1,X2)) -> mark#(X2) p16: mark#(cons(X1,X2)) -> mark#(X1) p17: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) = ((1,0),(1,1)) x1 + (2,3) U21_A(x1) = ((1,0),(1,1)) x1 + (2,1) U31_A(x1) = ((1,0),(1,1)) x1 + (2,3) U41_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (2,3) U42_A(x1) = x1 + (2,3) U51_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U52_A(x1) = x1 + (2,1) U62_A(x1) = x1 + (2,1) U71_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x3 + (2,1) U72_A(x1,x2) = x1 + x2 + (2,1) U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((0,0),(1,0)) x3 + ((1,0),(1,1)) x4 + (2,1) U92_A(x1,x2,x3,x4) = x1 + x3 + x4 + (2,1) U93_A(x1,x2,x3,x4) = x1 + ((1,0),(1,1)) x2 + ((0,0),(1,0)) x3 + ((0,0),(1,0)) x4 + (2,3) take_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) cons_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,2) s_A(x1) = x1 + (2,1) precedence: U72 > U91 > U11 = take > U52 = U93 > U31 = U41 = U71 > mark# = U42 = U51 = cons > U21 = U92 > U62 = s partial status: pi(mark#) = [1] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [1] pi(U42) = [1] pi(U51) = [1, 2] pi(U52) = [1] pi(U62) = [] pi(U71) = [1, 3] pi(U72) = [1, 2] pi(U91) = [] pi(U92) = [1] pi(U93) = [1] pi(take) = [1, 2] pi(cons) = [1, 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#(U21(X)) -> mark#(X) p2: mark#(U31(X)) -> mark#(X) p3: mark#(U41(X1,X2)) -> mark#(X1) p4: mark#(U42(X)) -> mark#(X) p5: mark#(U51(X1,X2)) -> mark#(X1) p6: mark#(U52(X)) -> mark#(X) p7: mark#(U62(X)) -> mark#(X) p8: mark#(U71(X1,X2,X3)) -> mark#(X1) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p13: mark#(take(X1,X2)) -> mark#(X1) p14: mark#(take(X1,X2)) -> mark#(X2) p15: mark#(cons(X1,X2)) -> mark#(X1) p16: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: mark#(U62(X)) -> mark#(X) p12: mark#(U52(X)) -> mark#(X) p13: mark#(U51(X1,X2)) -> mark#(X1) p14: mark#(U42(X)) -> mark#(X) p15: mark#(U41(X1,X2)) -> mark#(X1) p16: mark#(U31(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) U21_A(x1) = ((1,0),(1,1)) x1 + (3,1) s_A(x1) = ((1,0),(1,0)) x1 + (3,3) cons_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (3,3) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,3) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + (3,1) U92_A(x1,x2,x3,x4) = x1 + x2 + x3 + x4 + (1,1) U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x3 + (3,3) U72_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) U71_A(x1,x2,x3) = x1 + x2 + x3 + (1,1) U62_A(x1) = ((1,0),(1,1)) x1 + (3,3) U52_A(x1) = ((1,0),(0,0)) x1 + (3,1) U51_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,3) U42_A(x1) = x1 + (3,3) U41_A(x1,x2) = x1 + x2 + (1,1) U31_A(x1) = ((1,0),(0,0)) x1 + (3,1) precedence: U51 > U42 > s = cons = take = U71 > mark# = U91 = U72 = U62 > U52 > U41 > U93 = U92 > U21 = U31 partial status: pi(mark#) = [] pi(U21) = [] pi(s) = [] pi(cons) = [2] pi(take) = [2] pi(U93) = [3] pi(U92) = [1] pi(U91) = [1] pi(U72) = [1] pi(U71) = [1, 3] pi(U62) = [] pi(U52) = [] pi(U51) = [2] pi(U42) = [1] pi(U41) = [1] pi(U31) = [] The next rules are strictly ordered: p15 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: mark#(U62(X)) -> mark#(X) p12: mark#(U52(X)) -> mark#(X) p13: mark#(U51(X1,X2)) -> mark#(X1) p14: mark#(U42(X)) -> mark#(X) p15: mark#(U31(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(U31(X)) -> mark#(X) p3: mark#(U42(X)) -> mark#(X) p4: mark#(U51(X1,X2)) -> mark#(X1) p5: mark#(U52(X)) -> mark#(X) p6: mark#(U62(X)) -> mark#(X) p7: mark#(U71(X1,X2,X3)) -> mark#(X1) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p12: mark#(take(X1,X2)) -> mark#(X1) p13: mark#(take(X1,X2)) -> mark#(X2) p14: mark#(cons(X1,X2)) -> mark#(X1) p15: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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 U21_A(x1) = ((1,0),(1,1)) x1 + (1,1) U31_A(x1) = ((1,0),(1,1)) x1 + (1,1) U42_A(x1) = ((1,0),(1,1)) x1 + (1,1) U51_A(x1,x2) = ((1,0),(1,1)) x1 + (1,1) U52_A(x1) = ((1,0),(1,1)) x1 + (1,1) U62_A(x1) = ((1,0),(1,1)) x1 + (1,1) U71_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + x3 + (1,1) U72_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,1) U91_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + x2 + x3 + x4 + (1,1) U92_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + x2 + (1,1) U93_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + x3 + x4 + (1,1) take_A(x1,x2) = x1 + x2 + (1,1) cons_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (1,1) s_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: mark# > cons > U93 > U52 = U71 = U72 = U92 > take > U51 = U62 = U91 = s > U21 = U42 > U31 partial status: pi(mark#) = [] pi(U21) = [] pi(U31) = [] pi(U42) = [1] pi(U51) = [1] pi(U52) = [1] pi(U62) = [1] pi(U71) = [3] pi(U72) = [2] pi(U91) = [] pi(U92) = [] pi(U93) = [4] pi(take) = [1, 2] pi(cons) = [2] pi(s) = [] 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#(U21(X)) -> mark#(X) p2: mark#(U42(X)) -> mark#(X) p3: mark#(U51(X1,X2)) -> mark#(X1) p4: mark#(U52(X)) -> mark#(X) p5: mark#(U62(X)) -> mark#(X) p6: mark#(U71(X1,X2,X3)) -> mark#(X1) p7: mark#(U72(X1,X2)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(take(X1,X2)) -> mark#(X1) p12: mark#(take(X1,X2)) -> mark#(X2) p13: mark#(cons(X1,X2)) -> mark#(X1) p14: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) p5: mark#(take(X1,X2)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(U71(X1,X2,X3)) -> mark#(X1) p11: mark#(U62(X)) -> mark#(X) p12: mark#(U52(X)) -> mark#(X) p13: mark#(U51(X1,X2)) -> mark#(X1) p14: mark#(U42(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) = ((0,0),(1,0)) x1 + (2,2) U21_A(x1) = ((1,0),(1,1)) x1 + (3,1) s_A(x1) = ((1,0),(1,1)) x1 + (3,3) cons_A(x1,x2) = x1 + x2 + (3,1) take_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (3,1) U93_A(x1,x2,x3,x4) = x1 + x2 + x3 + (3,1) U92_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + x2 + x3 + x4 + (3,1) U91_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + x2 + x4 + (3,1) U72_A(x1,x2) = x1 + x2 + (3,3) U71_A(x1,x2,x3) = x1 + x2 + x3 + (3,1) U62_A(x1) = ((1,0),(1,0)) x1 + (3,3) U52_A(x1) = x1 + (1,1) U51_A(x1,x2) = x1 + (1,3) U42_A(x1) = ((1,0),(0,0)) x1 + (1,3) precedence: U42 > U62 > U52 > U92 = U51 > U21 = U93 = U71 > mark# = cons = take = U91 = U72 > s partial status: pi(mark#) = [] pi(U21) = [1] pi(s) = [] pi(cons) = [2] pi(take) = [2] pi(U93) = [3] pi(U92) = [3] pi(U91) = [] pi(U72) = [1] pi(U71) = [] pi(U62) = [] pi(U52) = [1] pi(U51) = [1] pi(U42) = [] 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#(U21(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(U71(X1,X2,X3)) -> mark#(X1) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U52(X)) -> mark#(X) p12: mark#(U51(X1,X2)) -> mark#(X1) p13: mark#(U42(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(U42(X)) -> mark#(X) p3: mark#(U51(X1,X2)) -> mark#(X1) p4: mark#(U52(X)) -> mark#(X) p5: mark#(U62(X)) -> mark#(X) p6: mark#(U71(X1,X2,X3)) -> mark#(X1) p7: mark#(U72(X1,X2)) -> mark#(X1) p8: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(take(X1,X2)) -> mark#(X1) p12: mark#(take(X1,X2)) -> mark#(X2) p13: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) U21_A(x1) = ((1,0),(1,1)) x1 + (3,3) U42_A(x1) = x1 + (3,1) U51_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (3,3) U52_A(x1) = ((1,0),(1,1)) x1 + (3,3) U62_A(x1) = ((1,0),(1,1)) x1 + (3,3) U71_A(x1,x2,x3) = x1 + (1,1) U72_A(x1,x2) = x1 + x2 + (3,1) U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + x4 + (3,1) U92_A(x1,x2,x3,x4) = ((1,0),(0,0)) x1 + x2 + x3 + x4 + (3,1) U93_A(x1,x2,x3,x4) = x1 + x2 + (3,3) take_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,1) s_A(x1) = ((1,0),(0,0)) x1 + (3,3) precedence: U92 > s > U72 > mark# > U93 > take > U71 > U51 > U52 > U21 = U91 > U42 > U62 partial status: pi(mark#) = [] pi(U21) = [] pi(U42) = [] pi(U51) = [1, 2] pi(U52) = [] pi(U62) = [] pi(U71) = [] pi(U72) = [2] pi(U91) = [1, 4] pi(U92) = [4] pi(U93) = [] pi(take) = [2] pi(s) = [] 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#(U21(X)) -> mark#(X) p2: mark#(U42(X)) -> mark#(X) p3: mark#(U52(X)) -> mark#(X) p4: mark#(U62(X)) -> mark#(X) p5: mark#(U71(X1,X2,X3)) -> mark#(X1) p6: mark#(U72(X1,X2)) -> mark#(X1) p7: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(take(X1,X2)) -> mark#(X1) p11: mark#(take(X1,X2)) -> mark#(X2) p12: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(U71(X1,X2,X3)) -> mark#(X1) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U52(X)) -> mark#(X) p12: mark#(U42(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) U21_A(x1) = ((1,0),(1,1)) x1 + (2,3) s_A(x1) = ((1,0),(1,1)) x1 + (2,1) take_A(x1,x2) = x1 + x2 + (2,1) U93_A(x1,x2,x3,x4) = x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + ((0,0),(1,0)) x4 + (2,1) U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x3 + x4 + (2,1) U91_A(x1,x2,x3,x4) = x1 + x3 + x4 + (2,3) U72_A(x1,x2) = x1 + x2 + (2,3) U71_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) U62_A(x1) = x1 + (2,3) U52_A(x1) = x1 + (2,1) U42_A(x1) = x1 + (2,3) precedence: U62 > U52 > take = U42 > U21 > s > U93 > mark# = U92 = U91 = U71 > U72 partial status: pi(mark#) = [1] pi(U21) = [1] pi(s) = [] pi(take) = [1, 2] pi(U93) = [] pi(U92) = [1, 4] pi(U91) = [1, 3] pi(U72) = [1, 2] pi(U71) = [1] pi(U62) = [1] pi(U52) = [] pi(U42) = [] The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(U71(X1,X2,X3)) -> mark#(X1) p10: mark#(U52(X)) -> mark#(X) p11: mark#(U42(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(U42(X)) -> mark#(X) p3: mark#(U52(X)) -> mark#(X) p4: mark#(U71(X1,X2,X3)) -> mark#(X1) p5: mark#(U72(X1,X2)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p9: mark#(take(X1,X2)) -> mark#(X1) p10: mark#(take(X1,X2)) -> mark#(X2) p11: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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 + (1,2) U21_A(x1) = ((1,0),(1,1)) x1 + (2,3) U42_A(x1) = ((1,0),(1,1)) x1 + (2,1) U52_A(x1) = ((1,0),(1,1)) x1 + (2,1) U71_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U72_A(x1,x2) = x1 + x2 + (2,1) U91_A(x1,x2,x3,x4) = x1 + x2 + x3 + x4 + (2,1) U92_A(x1,x2,x3,x4) = x1 + x2 + x3 + (2,1) U93_A(x1,x2,x3,x4) = x1 + ((1,0),(1,1)) x2 + ((0,0),(1,0)) x3 + ((1,0),(1,1)) x4 + (2,1) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) s_A(x1) = ((1,0),(1,1)) x1 + (2,3) precedence: take > U21 > s > U42 > U52 > U71 > U91 > U93 > mark# = U72 = U92 partial status: pi(mark#) = [1] pi(U21) = [] pi(U42) = [] pi(U52) = [] pi(U71) = [1, 3] pi(U72) = [1, 2] pi(U91) = [] pi(U92) = [1, 3] pi(U93) = [1, 4] pi(take) = [] pi(s) = [] 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: mark#(U21(X)) -> mark#(X) p2: mark#(U42(X)) -> mark#(X) p3: mark#(U52(X)) -> mark#(X) p4: mark#(U71(X1,X2,X3)) -> mark#(X1) p5: mark#(U72(X1,X2)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(take(X1,X2)) -> mark#(X1) p9: mark#(take(X1,X2)) -> mark#(X2) p10: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U72(X1,X2)) -> mark#(X1) p8: mark#(U71(X1,X2,X3)) -> mark#(X1) p9: mark#(U52(X)) -> mark#(X) p10: mark#(U42(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) U21_A(x1) = ((1,0),(1,1)) x1 + (2,3) s_A(x1) = ((1,0),(1,1)) x1 + (2,1) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,3) U93_A(x1,x2,x3,x4) = x1 + x3 + (2,1) U91_A(x1,x2,x3,x4) = x1 + x2 + x4 + (2,1) U72_A(x1,x2) = x1 + x2 + (2,3) U71_A(x1,x2,x3) = x1 + ((1,0),(1,1)) x2 + ((0,0),(1,0)) x3 + (2,3) U52_A(x1) = ((1,0),(1,1)) x1 + (2,3) U42_A(x1) = x1 + (2,3) precedence: U42 > U21 > s > take > U93 > U71 > U91 > U52 > U72 > mark# partial status: pi(mark#) = [1] pi(U21) = [] pi(s) = [] pi(take) = [1, 2] pi(U93) = [] pi(U91) = [] pi(U72) = [] pi(U71) = [] pi(U52) = [] pi(U42) = [1] The next rules are strictly ordered: p10 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U72(X1,X2)) -> mark#(X1) p8: mark#(U71(X1,X2,X3)) -> mark#(X1) p9: mark#(U52(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U21(X)) -> mark#(X) p2: mark#(U52(X)) -> mark#(X) p3: mark#(U71(X1,X2,X3)) -> mark#(X1) p4: mark#(U72(X1,X2)) -> mark#(X1) p5: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(take(X1,X2)) -> mark#(X1) p8: mark#(take(X1,X2)) -> mark#(X2) p9: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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 + (2,2) U21_A(x1) = ((1,0),(1,1)) x1 + (3,1) U52_A(x1) = x1 + (1,1) U71_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x3 + (3,3) U72_A(x1,x2) = x1 + (1,1) U91_A(x1,x2,x3,x4) = x1 + (3,3) U93_A(x1,x2,x3,x4) = x1 + x2 + x3 + x4 + (1,1) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,3) s_A(x1) = x1 + (3,3) precedence: mark# = U93 = take > s > U21 > U52 > U71 > U72 > U91 partial status: pi(mark#) = [] pi(U21) = [] pi(U52) = [] pi(U71) = [3] pi(U72) = [] pi(U91) = [] pi(U93) = [] pi(take) = [] 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#(U52(X)) -> mark#(X) p2: mark#(U71(X1,X2,X3)) -> mark#(X1) p3: mark#(U72(X1,X2)) -> mark#(X1) p4: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(take(X1,X2)) -> mark#(X1) p7: mark#(take(X1,X2)) -> mark#(X2) p8: mark#(s(X)) -> mark#(X) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U52(X)) -> mark#(X) p2: mark#(s(X)) -> mark#(X) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(take(X1,X2)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U72(X1,X2)) -> mark#(X1) p8: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) U52_A(x1) = ((1,0),(1,1)) x1 + (2,1) s_A(x1) = ((1,0),(1,1)) x1 + (2,3) take_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) U93_A(x1,x2,x3,x4) = x1 + x2 + x3 + x4 + (2,1) U91_A(x1,x2,x3,x4) = x1 + x3 + x4 + (2,3) U72_A(x1,x2) = ((1,0),(1,1)) x1 + (2,2) U71_A(x1,x2,x3) = x1 + x2 + x3 + (2,3) precedence: U71 > s > take > U91 > U72 > U52 > mark# = U93 partial status: pi(mark#) = [1] pi(U52) = [] pi(s) = [1] pi(take) = [] pi(U93) = [1, 4] pi(U91) = [] pi(U72) = [] pi(U71) = [1, 3] 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#(take(X1,X2)) -> mark#(X2) p3: mark#(take(X1,X2)) -> mark#(X1) p4: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U72(X1,X2)) -> mark#(X1) p7: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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#(s(X)) -> mark#(X) p2: mark#(U71(X1,X2,X3)) -> mark#(X1) p3: mark#(U72(X1,X2)) -> mark#(X1) p4: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(take(X1,X2)) -> mark#(X1) p7: mark#(take(X1,X2)) -> mark#(X2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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 + (1,2) s_A(x1) = ((1,0),(1,1)) x1 + (2,1) U71_A(x1,x2,x3) = x1 + x2 + x3 + (2,1) U72_A(x1,x2) = x1 + (2,1) U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x4 + (2,1) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + ((1,0),(1,1)) x4 + (2,1) take_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (2,3) precedence: s > U71 > U72 > U91 > take > mark# > U93 partial status: pi(mark#) = [1] pi(s) = [] pi(U71) = [] pi(U72) = [] pi(U91) = [] pi(U93) = [1, 4] pi(take) = [1, 2] The next rules are strictly ordered: p6 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#(U71(X1,X2,X3)) -> mark#(X1) p3: mark#(U72(X1,X2)) -> mark#(X1) p4: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(take(X1,X2)) -> mark#(X2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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#(s(X)) -> mark#(X) p2: mark#(take(X1,X2)) -> mark#(X2) p3: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U72(X1,X2)) -> mark#(X1) p6: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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 + (1,2) s_A(x1) = x1 + (2,1) take_A(x1,x2) = x1 + x2 + (2,1) U93_A(x1,x2,x3,x4) = x1 + x2 + x4 + (2,1) U91_A(x1,x2,x3,x4) = x1 + x2 + x3 + x4 + (2,1) U72_A(x1,x2) = ((1,0),(1,1)) x1 + x2 + (2,3) U71_A(x1,x2,x3) = x1 + (2,3) precedence: U72 > take > U71 > U91 > mark# = U93 > s partial status: pi(mark#) = [1] pi(s) = [] pi(take) = [] pi(U93) = [1, 4] pi(U91) = [1, 4] pi(U72) = [1, 2] pi(U71) = [1] 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#(s(X)) -> mark#(X) p2: mark#(take(X1,X2)) -> mark#(X2) p3: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U72(X1,X2)) -> mark#(X1) p5: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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#(s(X)) -> mark#(X) p2: mark#(U71(X1,X2,X3)) -> mark#(X1) p3: mark#(U72(X1,X2)) -> mark#(X1) p4: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(take(X1,X2)) -> mark#(X2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) s_A(x1) = ((1,0),(1,1)) x1 + (2,3) U71_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (2,3) U72_A(x1,x2) = x1 + (2,1) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((0,0),(1,0)) x3 + ((1,0),(1,1)) x4 + (2,3) take_A(x1,x2) = x1 + x2 + (2,3) precedence: take > U71 > mark# = U72 = U93 > s partial status: pi(mark#) = [1] pi(s) = [] pi(U71) = [1, 3] pi(U72) = [1] pi(U93) = [1, 4] pi(take) = [2] The next rules are strictly ordered: p5 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#(U71(X1,X2,X3)) -> mark#(X1) p3: mark#(U72(X1,X2)) -> mark#(X1) p4: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p3: mark#(U72(X1,X2)) -> mark#(X1) p4: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) s_A(x1) = x1 + (2,1) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x4 + (2,3) U72_A(x1,x2) = x1 + x2 + (2,1) U71_A(x1,x2,x3) = ((1,0),(1,1)) x1 + x2 + ((0,0),(1,0)) x3 + (2,3) precedence: U72 > mark# = U93 > U71 > s partial status: pi(mark#) = [1] pi(s) = [] pi(U93) = [1, 4] pi(U72) = [] pi(U71) = [1, 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p2: mark#(U72(X1,X2)) -> mark#(X1) p3: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p2: mark#(U71(X1,X2,X3)) -> mark#(X1) p3: mark#(U72(X1,X2)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x3 + x4 + (3,3) U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (1,1) U72_A(x1,x2) = ((1,0),(1,0)) x1 + (3,1) precedence: mark# = U72 > U93 > U71 partial status: pi(mark#) = [] pi(U93) = [] pi(U71) = [] pi(U72) = [] 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p2: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p2: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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,1) U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + ((1,0),(1,1)) x4 + (3,2) U71_A(x1,x2,x3) = ((1,0),(0,0)) x1 + x2 + x3 + (1,0) precedence: mark# = U93 = U71 partial status: pi(mark#) = [] pi(U93) = [4] pi(U71) = [3] 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#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U71(X1,X2,X3)) -> mark#(X1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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 + (1,2) U71_A(x1,x2,x3) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + ((1,0),(1,1)) x3 + (2,1) precedence: mark# > U71 partial status: pi(mark#) = [1] pi(U71) = [1, 3] 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__U41#(tt(),V2) -> a__isNatIList#(V2) p2: a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNat#(V1) p4: a__isNat#(length(V1)) -> a__isNatList#(V1) p5: a__isNatList#(take(V1,V2)) -> a__isNat#(V1) p6: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p7: a__U61#(tt(),V2) -> a__isNatIList#(V2) p8: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) p9: a__isNatIList#(V) -> a__isNatList#(V) p10: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p11: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p12: a__U51#(tt(),V2) -> a__isNatList#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The set of usable rules consists of r2, r3, r4, r5, r6, r7, r8, r9, r10, r17, r18, r19, r20, r21, r22, r23, r24, r25, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r70 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U41#_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (1,1) tt_A() = (3,4) a__isNatIList#_A(x1) = ((1,0),(1,0)) x1 + (2,9) cons_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (14,0) a__isNat#_A(x1) = ((1,0),(0,0)) x1 s_A(x1) = ((1,0),(1,1)) x1 + (0,25) length_A(x1) = ((1,0),(1,1)) x1 + (10,10) a__isNatList#_A(x1) = ((1,0),(0,0)) x1 + (1,5) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (16,0) a__U61#_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,0)) x2 + (1,10) a__isNat_A(x1) = (12,24) a__U51#_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (1,6) a__U42_A(x1) = (4,5) U42_A(x1) = (0,0) a__U31_A(x1) = ((0,0),(1,0)) x1 + (4,0) a__U41_A(x1,x2) = ((0,0),(1,0)) x1 + ((0,0),(1,0)) x2 + (5,3) a__isNatIList_A(x1) = ((0,0),(1,0)) x1 + (12,8) U31_A(x1) = (0,0) U41_A(x1,x2) = (0,0) a__U52_A(x1) = (4,5) a__U62_A(x1) = (4,5) a__isNatList_A(x1) = ((1,0),(1,1)) x1 + (9,9) zeros_A() = (1,1) isNatIList_A(x1) = (0,0) U52_A(x1) = (0,0) U62_A(x1) = (0,0) a__U51_A(x1,x2) = ((1,0),(1,1)) x1 + (3,1) a__U61_A(x1,x2) = ((1,0),(1,1)) x1 + (2,0) U51_A(x1,x2) = (0,0) U61_A(x1,x2) = (0,0) a__U11_A(x1) = ((0,0),(1,0)) x1 + (11,16) a__U21_A(x1) = ((0,0),(1,0)) x1 + (4,11) nil_A() = (1,1) U11_A(x1) = (10,17) U21_A(x1) = (0,0) isNatList_A(x1) = (0,0) |0|_A() = (4,0) isNat_A(x1) = (0,0) precedence: a__isNat# = a__isNatList = nil > isNatIList > cons = take = a__isNat = a__U41 = a__isNatIList > s = a__U42 > U62 = a__U51 > tt = a__U62 > zeros > U42 = a__U52 > length > a__U11 > a__U41# > U52 > U51 = a__U21 > isNatList = |0| = isNat > U21 > a__isNatIList# > a__isNatList# = a__U61# = a__U51# > U31 > U11 > a__U31 = U41 = a__U61 = U61 partial status: pi(a__U41#) = [] pi(tt) = [] pi(a__isNatIList#) = [] pi(cons) = [1] pi(a__isNat#) = [] pi(s) = [] pi(length) = [1] pi(a__isNatList#) = [] pi(take) = [] pi(a__U61#) = [] pi(a__isNat) = [] pi(a__U51#) = [] pi(a__U42) = [] pi(U42) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__isNatIList) = [] pi(U31) = [] pi(U41) = [] pi(a__U52) = [] pi(a__U62) = [] pi(a__isNatList) = [] pi(zeros) = [] pi(isNatIList) = [] pi(U52) = [] pi(U62) = [] pi(a__U51) = [] pi(a__U61) = [1] pi(U51) = [] pi(U61) = [] pi(a__U11) = [] pi(a__U21) = [] pi(nil) = [] pi(U11) = [] pi(U21) = [] pi(isNatList) = [] pi(|0|) = [] pi(isNat) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__U41#(tt(),V2) -> a__isNatIList#(V2) p2: a__isNat#(s(V1)) -> a__isNat#(V1) p3: a__isNat#(length(V1)) -> a__isNatList#(V1) p4: a__isNatList#(take(V1,V2)) -> a__isNat#(V1) p5: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p6: a__U61#(tt(),V2) -> a__isNatIList#(V2) p7: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) p8: a__isNatIList#(V) -> a__isNatList#(V) p9: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p10: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p11: a__U51#(tt(),V2) -> a__isNatList#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U41#(tt(),V2) -> a__isNatIList#(V2) p2: a__isNatIList#(V) -> a__isNatList#(V) p3: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p4: a__U51#(tt(),V2) -> a__isNatList#(V2) p5: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p6: a__isNat#(length(V1)) -> a__isNatList#(V1) p7: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p8: a__U61#(tt(),V2) -> a__isNatIList#(V2) p9: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) p10: a__isNatList#(take(V1,V2)) -> a__isNat#(V1) p11: a__isNat#(s(V1)) -> a__isNat#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The set of usable rules consists of r2, r3, r4, r5, r6, r7, r8, r9, r10, r17, r18, r19, r20, r21, r22, r23, r24, r25, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r70 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U41#_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(0,0)) x2 + (1,1) tt_A() = (24,22) a__isNatIList#_A(x1) = ((1,0),(1,1)) x1 + (12,1) a__isNatList#_A(x1) = ((1,0),(1,1)) x1 + (11,23) cons_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (26,25) a__U51#_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,1) a__isNat_A(x1) = ((1,0),(1,1)) x1 + (24,19) a__isNat#_A(x1) = x1 + (1,2) length_A(x1) = ((1,0),(1,1)) x1 + (27,24) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (14,3) a__U61#_A(x1,x2) = ((1,0),(1,1)) x2 + (13,2) s_A(x1) = ((1,0),(1,1)) x1 + (25,20) a__U42_A(x1) = (24,23) U42_A(x1) = (0,0) a__U31_A(x1) = ((0,0),(1,0)) x1 + (25,1) a__U41_A(x1,x2) = ((1,0),(1,0)) x1 + ((1,0),(0,0)) x2 a__isNatIList_A(x1) = ((1,0),(1,0)) x1 + (27,28) U31_A(x1) = (0,0) U41_A(x1,x2) = (0,0) a__U52_A(x1) = (24,22) a__U62_A(x1) = (25,23) a__isNatList_A(x1) = ((1,0),(1,1)) x1 + (26,1) zeros_A() = (0,1) isNatIList_A(x1) = (0,0) U52_A(x1) = (0,0) U62_A(x1) = (1,24) a__U51_A(x1,x2) = ((1,0),(1,1)) x1 + (1,10) a__U61_A(x1,x2) = ((1,0),(1,1)) x1 + (4,1) U51_A(x1,x2) = (0,0) U61_A(x1,x2) = (1,2) a__U11_A(x1) = ((1,0),(1,0)) x1 + (2,1) a__U21_A(x1) = ((1,0),(1,1)) x1 + (2,1) nil_A() = (25,23) U11_A(x1) = (0,0) U21_A(x1) = (0,0) isNatList_A(x1) = (1,2) |0|_A() = (1,1) isNat_A(x1) = (24,1) precedence: isNatIList > a__U41# = cons > U31 > a__isNatIList > a__U51 > a__U52 > tt = a__isNatIList# = a__U42 = a__U31 = a__U41 = zeros = a__U61 > a__isNatList# = a__U51# = a__isNat = a__U62 > length = a__U61# = a__isNatList > s = U51 = U61 = a__U11 = a__U21 > a__isNat# = take > U42 = nil = U11 = U21 = isNatList = |0| = isNat > U41 = U52 = U62 partial status: pi(a__U41#) = [] pi(tt) = [] pi(a__isNatIList#) = [] pi(a__isNatList#) = [1] pi(cons) = [1] pi(a__U51#) = [2] pi(a__isNat) = [1] pi(a__isNat#) = [] pi(length) = [1] pi(take) = [] pi(a__U61#) = [] pi(s) = [1] pi(a__U42) = [] pi(U42) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__isNatIList) = [] pi(U31) = [] pi(U41) = [] pi(a__U52) = [] pi(a__U62) = [] pi(a__isNatList) = [1] pi(zeros) = [] pi(isNatIList) = [] pi(U52) = [] pi(U62) = [] pi(a__U51) = [] pi(a__U61) = [] pi(U51) = [] pi(U61) = [] pi(a__U11) = [] pi(a__U21) = [] pi(nil) = [] pi(U11) = [] pi(U21) = [] pi(isNatList) = [] pi(|0|) = [] pi(isNat) = [] 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__isNatIList#(V) -> a__isNatList#(V) p2: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p3: a__U51#(tt(),V2) -> a__isNatList#(V2) p4: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p5: a__isNat#(length(V1)) -> a__isNatList#(V1) p6: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p7: a__U61#(tt(),V2) -> a__isNatIList#(V2) p8: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) p9: a__isNatList#(take(V1,V2)) -> a__isNat#(V1) p10: a__isNat#(s(V1)) -> a__isNat#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p9, p10} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatIList#(V) -> a__isNatList#(V) p2: a__isNatList#(take(V1,V2)) -> a__isNat#(V1) p3: a__isNat#(s(V1)) -> a__isNat#(V1) p4: a__isNat#(length(V1)) -> a__isNatList#(V1) p5: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p6: a__U61#(tt(),V2) -> a__isNatIList#(V2) p7: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p8: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p9: a__U51#(tt(),V2) -> a__isNatList#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The set of usable rules consists of r2, r3, r4, r5, r6, r7, r8, r9, r10, r17, r18, r19, r20, r21, r22, r23, r24, r25, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r70 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNatIList#_A(x1) = ((1,0),(1,0)) x1 + (9,22) a__isNatList#_A(x1) = ((1,0),(0,0)) x1 + (8,3) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (11,19) a__isNat#_A(x1) = ((1,0),(0,0)) x1 + (1,1) s_A(x1) = ((1,0),(1,1)) x1 + (3,14) length_A(x1) = ((1,0),(1,1)) x1 + (9,2) a__U61#_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,0)) x2 + (10,16) a__isNat_A(x1) = ((1,0),(1,1)) x1 + (2,13) tt_A() = (7,21) cons_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + (4,2) a__U51#_A(x1,x2) = ((1,0),(1,1)) x2 + (9,4) a__U42_A(x1) = ((1,0),(1,1)) x1 + (2,2) U42_A(x1) = (1,1) a__U31_A(x1) = ((1,0),(1,1)) x1 + (1,32) a__U41_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,0)) x2 + (1,26) a__isNatIList_A(x1) = ((1,0),(1,1)) x1 + (4,34) U31_A(x1) = (0,0) U41_A(x1,x2) = (0,0) a__U52_A(x1) = ((1,0),(1,0)) x1 + (2,18) a__U62_A(x1) = (8,20) a__isNatList_A(x1) = ((1,0),(1,0)) x1 + (2,1) zeros_A() = (8,22) isNatIList_A(x1) = (0,0) U52_A(x1) = (1,19) U62_A(x1) = (1,21) a__U51_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,1) a__U61_A(x1,x2) = ((1,0),(1,1)) x1 + (2,5) U51_A(x1,x2) = (0,0) U61_A(x1,x2) = (1,6) a__U11_A(x1) = ((1,0),(1,1)) x1 + (8,1) a__U21_A(x1) = x1 + (2,18) nil_A() = (21,22) U11_A(x1) = (0,0) U21_A(x1) = (1,19) isNatList_A(x1) = (1,2) |0|_A() = (6,1) isNat_A(x1) = (0,0) precedence: a__U52 = a__U51 = nil = U11 = U21 > isNatList > U52 > a__U61# = isNat > cons > tt = a__U42 = a__U41 = a__isNatList = zeros > length > s > take > a__isNat# > a__isNatIList# = a__isNatList# > a__U51# = U42 > U31 > a__U31 = U62 = a__U61 > a__U62 > a__isNat = isNatIList > U51 > a__isNatIList = a__U11 > |0| > U41 = U61 = a__U21 partial status: pi(a__isNatIList#) = [] pi(a__isNatList#) = [] pi(take) = [] pi(a__isNat#) = [] pi(s) = [] pi(length) = [1] pi(a__U61#) = [] pi(a__isNat) = [] pi(tt) = [] pi(cons) = [] pi(a__U51#) = [] pi(a__U42) = [] pi(U42) = [] pi(a__U31) = [1] pi(a__U41) = [] pi(a__isNatIList) = [] pi(U31) = [] pi(U41) = [] pi(a__U52) = [] pi(a__U62) = [] pi(a__isNatList) = [] pi(zeros) = [] pi(isNatIList) = [] pi(U52) = [] pi(U62) = [] pi(a__U51) = [2] pi(a__U61) = [] pi(U51) = [] pi(U61) = [] pi(a__U11) = [] pi(a__U21) = [1] pi(nil) = [] pi(U11) = [] pi(U21) = [] pi(isNatList) = [] pi(|0|) = [] pi(isNat) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatIList#(V) -> a__isNatList#(V) p2: a__isNat#(s(V1)) -> a__isNat#(V1) p3: a__isNat#(length(V1)) -> a__isNatList#(V1) p4: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p5: a__U61#(tt(),V2) -> a__isNatIList#(V2) p6: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p7: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p8: a__U51#(tt(),V2) -> a__isNatList#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatIList#(V) -> a__isNatList#(V) p2: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p3: a__U51#(tt(),V2) -> a__isNatList#(V2) p4: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p5: a__isNat#(length(V1)) -> a__isNatList#(V1) p6: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p7: a__U61#(tt(),V2) -> a__isNatIList#(V2) p8: a__isNat#(s(V1)) -> a__isNat#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The set of usable rules consists of r2, r3, r4, r5, r6, r7, r8, r9, r10, r17, r18, r19, r20, r21, r22, r23, r24, r25, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r70 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNatIList#_A(x1) = ((0,0),(1,0)) x1 + (1,25) a__isNatList#_A(x1) = ((0,0),(1,0)) x1 + (1,24) cons_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (16,16) a__U51#_A(x1,x2) = ((0,0),(1,0)) x2 + (1,25) a__isNat_A(x1) = ((0,0),(1,0)) x1 + (4,37) tt_A() = (2,9) a__isNat#_A(x1) = ((0,0),(1,0)) x1 + (1,39) length_A(x1) = ((1,0),(0,0)) x1 + (4,0) take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (7,27) a__U61#_A(x1,x2) = ((0,0),(1,0)) x2 + (1,26) s_A(x1) = ((1,0),(1,1)) x1 + (6,38) a__U42_A(x1) = x1 + (2,2) U42_A(x1) = (1,1) a__U31_A(x1) = x1 + (1,1) a__U41_A(x1,x2) = ((1,0),(1,0)) x2 + (8,15) a__isNatIList_A(x1) = ((1,0),(1,0)) x1 + (5,12) U31_A(x1) = (0,0) U41_A(x1,x2) = (0,0) a__U52_A(x1) = ((1,0),(1,1)) x1 + (2,3) a__U62_A(x1) = ((0,0),(1,0)) x1 + (3,8) a__isNatList_A(x1) = ((1,0),(1,1)) x1 + (3,4) zeros_A() = (3,10) isNatIList_A(x1) = (0,13) U52_A(x1) = (1,4) U62_A(x1) = (0,0) a__U51_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (6,1) a__U61_A(x1,x2) = x1 + (2,2) U51_A(x1,x2) = (0,0) U61_A(x1,x2) = (0,0) a__U11_A(x1) = ((0,0),(1,0)) x1 + (3,8) a__U21_A(x1) = ((1,0),(1,1)) x1 + (0,1) nil_A() = (3,1) U11_A(x1) = (1,9) U21_A(x1) = (0,0) isNatList_A(x1) = (0,0) |0|_A() = (3,10) isNat_A(x1) = (0,0) precedence: a__isNat# = U42 > a__U31 = zeros > a__isNatIList = a__isNatList = a__U51 > U62 > tt = a__U42 = a__U41 = a__U62 = isNatIList = U61 = |0| > a__isNat > U52 > a__U52 > a__isNatIList# = a__isNatList# = a__U51# = a__U61# > U41 > take = U51 = a__U11 = nil = U11 = U21 = isNatList > cons = length > isNat > U31 = a__U61 = a__U21 > s partial status: pi(a__isNatIList#) = [] pi(a__isNatList#) = [] pi(cons) = [2] pi(a__U51#) = [] pi(a__isNat) = [] pi(tt) = [] pi(a__isNat#) = [] pi(length) = [] pi(take) = [1] pi(a__U61#) = [] pi(s) = [] pi(a__U42) = [] pi(U42) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__isNatIList) = [] pi(U31) = [] pi(U41) = [] pi(a__U52) = [1] pi(a__U62) = [] pi(a__isNatList) = [] pi(zeros) = [] pi(isNatIList) = [] pi(U52) = [] pi(U62) = [] pi(a__U51) = [] pi(a__U61) = [] pi(U51) = [] pi(U61) = [] pi(a__U11) = [] pi(a__U21) = [] pi(nil) = [] pi(U11) = [] pi(U21) = [] pi(isNatList) = [] pi(|0|) = [] pi(isNat) = [] 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: a__isNatIList#(V) -> a__isNatList#(V) p2: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p3: a__U51#(tt(),V2) -> a__isNatList#(V2) p4: a__isNat#(length(V1)) -> a__isNatList#(V1) p5: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p6: a__U61#(tt(),V2) -> a__isNatIList#(V2) p7: a__isNat#(s(V1)) -> a__isNat#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p7} {p1, p2, p3, p5, p6} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(s(V1)) -> a__isNat#(V1) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) 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__isNat#_A(x1) = ((1,0),(1,0)) x1 + (2,2) s_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: a__isNat# = s partial status: pi(a__isNat#) = [] pi(s) = [] 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__isNatIList#(V) -> a__isNatList#(V) p2: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p3: a__U61#(tt(),V2) -> a__isNatIList#(V2) p4: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p5: a__U51#(tt(),V2) -> a__isNatList#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The set of usable rules consists of r2, r3, r4, r5, r6, r7, r8, r9, r10, r17, r18, r19, r20, r21, r22, r23, r24, r25, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r70 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__isNatIList#_A(x1) = ((1,0),(0,0)) x1 + (3,6) a__isNatList#_A(x1) = x1 + (2,3) take_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(0,0)) x2 + (5,1) a__U61#_A(x1,x2) = ((1,0),(0,0)) x1 + x2 + (3,5) a__isNat_A(x1) = (3,15) tt_A() = (1,2) cons_A(x1,x2) = ((1,0),(1,1)) x2 + (8,5) a__U51#_A(x1,x2) = x2 + (3,4) a__U42_A(x1) = (1,2) U42_A(x1) = (0,0) a__U31_A(x1) = (2,3) a__U41_A(x1,x2) = ((1,0),(0,0)) x1 + ((1,0),(1,1)) x2 + (4,1) a__isNatIList_A(x1) = ((1,0),(1,1)) x1 + (4,1) U31_A(x1) = (0,0) U41_A(x1,x2) = (0,0) a__U52_A(x1) = (2,1) a__U62_A(x1) = (2,3) a__isNatList_A(x1) = (10,16) zeros_A() = (2,3) isNatIList_A(x1) = x1 U52_A(x1) = (0,0) U62_A(x1) = (0,0) a__U51_A(x1,x2) = (9,17) a__U61_A(x1,x2) = (3,4) U51_A(x1,x2) = (0,0) U61_A(x1,x2) = (0,0) a__U11_A(x1) = (2,1) a__U21_A(x1) = (2,3) nil_A() = (2,1) U11_A(x1) = (0,0) U21_A(x1) = (1,4) isNatList_A(x1) = (10,16) |0|_A() = (2,3) length_A(x1) = (11,2) s_A(x1) = (4,16) isNat_A(x1) = (0,0) precedence: U52 > a__U61# > a__isNat = cons = isNatIList > a__U51# > a__U62 = a__U51 = a__U61 > a__U52 > take > a__U42 > U42 = U62 > a__isNatIList# > a__isNatList# > U31 > a__U41 = U61 = a__U21 = nil = |0| > tt = a__U31 = a__isNatIList = a__isNatList = a__U11 > zeros > U51 = U11 = U21 = isNatList > U41 > length = s = isNat partial status: pi(a__isNatIList#) = [] pi(a__isNatList#) = [1] pi(take) = [] pi(a__U61#) = [] pi(a__isNat) = [] pi(tt) = [] pi(cons) = [2] pi(a__U51#) = [2] pi(a__U42) = [] pi(U42) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__isNatIList) = [1] pi(U31) = [] pi(U41) = [] pi(a__U52) = [] pi(a__U62) = [] pi(a__isNatList) = [] pi(zeros) = [] pi(isNatIList) = [] pi(U52) = [] pi(U62) = [] pi(a__U51) = [] pi(a__U61) = [] pi(U51) = [] pi(U61) = [] pi(a__U11) = [] pi(a__U21) = [] pi(nil) = [] pi(U11) = [] pi(U21) = [] pi(isNatList) = [] pi(|0|) = [] pi(length) = [] pi(s) = [] pi(isNat) = [] 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__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p2: a__U61#(tt(),V2) -> a__isNatIList#(V2) p3: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) p4: a__U51#(tt(),V2) -> a__isNatList#(V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: {p3, p4} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__U51#(tt(),V2) -> a__isNatList#(V2) p2: a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The set of usable rules consists of r2, r3, r4, r5, r6, r7, r8, r9, r10, r17, r18, r19, r20, r21, r22, r23, r24, r25, r57, r58, r59, r60, r61, r62, r63, r64, r65, r66, r67, r70 Take the reduction pair: weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: a__U51#_A(x1,x2) = x2 + (2,1) tt_A() = (0,0) a__isNatList#_A(x1) = ((1,0),(1,1)) x1 + (1,2) cons_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (8,5) a__isNat_A(x1) = (3,17) a__U42_A(x1) = ((1,0),(1,0)) x1 + (0,1) U42_A(x1) = (0,0) a__U31_A(x1) = (1,1) a__U41_A(x1,x2) = x2 + (7,4) a__isNatIList_A(x1) = ((1,0),(1,1)) x1 + (6,3) U31_A(x1) = (0,0) U41_A(x1,x2) = (0,0) a__U52_A(x1) = (2,1) a__U62_A(x1) = (0,0) a__isNatList_A(x1) = (5,20) zeros_A() = (1,1) isNatIList_A(x1) = x1 + (5,1) U52_A(x1) = (1,2) U62_A(x1) = (0,0) a__U51_A(x1,x2) = (3,2) a__U61_A(x1,x2) = x1 + (1,2) U51_A(x1,x2) = (0,0) U61_A(x1,x2) = (0,0) a__U11_A(x1) = (1,1) a__U21_A(x1) = (2,2) nil_A() = (1,1) take_A(x1,x2) = (5,18) U11_A(x1) = (0,0) U21_A(x1) = (1,1) isNatList_A(x1) = (1,21) |0|_A() = (1,1) length_A(x1) = (6,21) s_A(x1) = (4,18) isNat_A(x1) = (3,17) precedence: a__isNat = U21 = isNatList > a__isNatList# = a__isNatIList = a__isNatList = isNatIList = a__U51 = |0| = s > a__U31 = a__U52 = U52 > cons = a__U42 = U42 = a__U41 = U41 = zeros = U51 = U61 = take > a__U51# = U11 > a__U11 = a__U21 > nil = length = isNat > tt = U31 = a__U62 = U62 = a__U61 partial status: pi(a__U51#) = [] pi(tt) = [] pi(a__isNatList#) = [] pi(cons) = [] pi(a__isNat) = [] pi(a__U42) = [] pi(U42) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__isNatIList) = [1] pi(U31) = [] pi(U41) = [] pi(a__U52) = [] pi(a__U62) = [] pi(a__isNatList) = [] pi(zeros) = [] pi(isNatIList) = [] pi(U52) = [] pi(U62) = [] pi(a__U51) = [] pi(a__U61) = [1] pi(U51) = [] pi(U61) = [] pi(a__U11) = [] pi(a__U21) = [] pi(nil) = [] pi(take) = [] pi(U11) = [] pi(U21) = [] pi(isNatList) = [] pi(|0|) = [] pi(length) = [] pi(s) = [] pi(isNat) = [] 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__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) and R consists of: r1: a__zeros() -> cons(|0|(),zeros()) r2: a__U11(tt()) -> tt() r3: a__U21(tt()) -> tt() r4: a__U31(tt()) -> tt() r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2)) r6: a__U42(tt()) -> tt() r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2)) r8: a__U52(tt()) -> tt() r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2)) r10: a__U62(tt()) -> tt() r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L) r12: a__U72(tt(),L) -> s(a__length(mark(L))) r13: a__U81(tt()) -> nil() r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N) r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N) r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) r17: a__isNat(|0|()) -> tt() r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1)) r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1)) r20: a__isNatIList(V) -> a__U31(a__isNatList(V)) r21: a__isNatIList(zeros()) -> tt() r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2) r23: a__isNatList(nil()) -> tt() r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2) r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2) r26: a__length(nil()) -> |0|() r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N) r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL)) r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N) r30: mark(zeros()) -> a__zeros() r31: mark(U11(X)) -> a__U11(mark(X)) r32: mark(U21(X)) -> a__U21(mark(X)) r33: mark(U31(X)) -> a__U31(mark(X)) r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2) r35: mark(U42(X)) -> a__U42(mark(X)) r36: mark(isNatIList(X)) -> a__isNatIList(X) r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2) r38: mark(U52(X)) -> a__U52(mark(X)) r39: mark(isNatList(X)) -> a__isNatList(X) r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2) r41: mark(U62(X)) -> a__U62(mark(X)) r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3) r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2) r44: mark(isNat(X)) -> a__isNat(X) r45: mark(length(X)) -> a__length(mark(X)) r46: mark(U81(X)) -> a__U81(mark(X)) r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4) r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4) r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) r51: mark(cons(X1,X2)) -> cons(mark(X1),X2) r52: mark(|0|()) -> |0|() r53: mark(tt()) -> tt() r54: mark(s(X)) -> s(mark(X)) r55: mark(nil()) -> nil() r56: a__zeros() -> zeros() r57: a__U11(X) -> U11(X) r58: a__U21(X) -> U21(X) r59: a__U31(X) -> U31(X) r60: a__U41(X1,X2) -> U41(X1,X2) r61: a__U42(X) -> U42(X) r62: a__isNatIList(X) -> isNatIList(X) r63: a__U51(X1,X2) -> U51(X1,X2) r64: a__U52(X) -> U52(X) r65: a__isNatList(X) -> isNatList(X) r66: a__U61(X1,X2) -> U61(X1,X2) r67: a__U62(X) -> U62(X) r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3) r69: a__U72(X1,X2) -> U72(X1,X2) r70: a__isNat(X) -> isNat(X) r71: a__length(X) -> length(X) r72: a__U81(X) -> U81(X) r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4) r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4) r76: a__take(X1,X2) -> take(X1,X2) The estimated dependency graph contains the following SCCs: (no SCCs)