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: max/plus interpretations on natural numbers: a__U93#_A(x1,x2,x3,x4) = max{x1 + 60, x2 + 161, x3 + 37, x4 + 70} tt_A = 10 mark#_A(x1) = max{69, x1 - 15} s_A(x1) = max{99, x1} cons_A(x1,x2) = max{134, x1, x2} take_A(x1,x2) = max{x1 + 179, x2 + 417} a__take#_A(x1,x2) = max{x1 + 39, x2 + 163} mark_A(x1) = x1 a__U91#_A(x1,x2,x3,x4) = max{x1 + 28, x2 + 162, x3 + 39, x4 + 84} a__isNatIList_A(x1) = x1 + 135 a__U92#_A(x1,x2,x3,x4) = max{x1 + 15, x2 + 161, x3 + 38, x4 + 84} a__isNat_A(x1) = x1 + 24 U93_A(x1,x2,x3,x4) = max{x1 + 76, x2 + 417, x3 + 179, x4 + 135} U92_A(x1,x2,x3,x4) = max{x1 + 68, x2 + 417, x3 + 179, x4 + 181} U91_A(x1,x2,x3,x4) = max{x1 + 281, x2 + 417, x3 + 179, x4 + 280} U81_A(x1) = x1 length_A(x1) = x1 + 193 a__length#_A(x1) = x1 + 177 a__U71#_A(x1,x2,x3) = max{x2 + 177, x3 + 84} a__isNatList_A(x1) = x1 + 68 a__U72#_A(x1,x2) = max{x1 + 59, x2 + 177} U72_A(x1,x2) = max{x1 + 99, x2 + 193} U71_A(x1,x2,x3) = max{x1 + 125, x2 + 193, x3 + 124} U62_A(x1) = max{418, x1} U61_A(x1,x2) = max{x1 + 156, x2 + 418} U52_A(x1) = x1 U51_A(x1,x2) = max{x1 + 11, x2 + 68} U42_A(x1) = max{1, x1} U41_A(x1,x2) = max{x1, x2 + 135} U31_A(x1) = max{68, x1 + 67} U21_A(x1) = max{123, x1} U11_A(x1) = max{192, x1 + 14} a__zeros_A = 204 |0|_A = 203 zeros_A = 204 a__U11_A(x1) = max{192, x1 + 14} a__U21_A(x1) = max{123, x1} a__U31_A(x1) = max{68, x1 + 67} a__U41_A(x1,x2) = max{x1, x2 + 135} a__U42_A(x1) = max{1, x1} a__U51_A(x1,x2) = max{x1 + 11, x2 + 68} a__U52_A(x1) = x1 a__U61_A(x1,x2) = max{x1 + 156, x2 + 418} a__U62_A(x1) = max{418, x1} a__U71_A(x1,x2,x3) = max{x1 + 125, x2 + 193, x3 + 124} a__U72_A(x1,x2) = max{x1 + 99, x2 + 193} a__length_A(x1) = x1 + 193 a__U81_A(x1) = x1 nil_A = 10 a__U91_A(x1,x2,x3,x4) = max{x1 + 281, x2 + 417, x3 + 179, x4 + 280} a__U92_A(x1,x2,x3,x4) = max{x1 + 68, x2 + 417, x3 + 179, x4 + 181} a__U93_A(x1,x2,x3,x4) = max{x1 + 76, x2 + 417, x3 + 179, x4 + 135} a__take_A(x1,x2) = max{x1 + 179, x2 + 417} isNatIList_A(x1) = x1 + 135 isNatList_A(x1) = x1 + 68 isNat_A(x1) = x1 + 24 precedence: mark# > a__U93# = tt = s = cons = take = a__take# = mark = a__U91# = a__isNatIList = a__U92# = a__isNat = U93 = U92 = U91 = U81 = length = a__length# = a__U71# = a__isNatList = a__U72# = U72 = U71 = U62 = U61 = U52 = U51 = U42 = U41 = U31 = U21 = U11 = a__zeros = |0| = zeros = a__U11 = a__U21 = a__U31 = a__U41 = a__U42 = a__U51 = a__U52 = a__U61 = a__U62 = a__U71 = a__U72 = a__length = a__U81 = nil = a__U91 = a__U92 = a__U93 = a__take = isNatIList = isNatList = isNat partial status: pi(a__U93#) = [] pi(tt) = [] pi(mark#) = [] pi(s) = [] pi(cons) = [] pi(take) = [] pi(a__take#) = [] pi(mark) = [] 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: max/plus interpretations on natural numbers: a__U93#_A(x1,x2,x3,x4) = max{18, x1 - 31, x2 - 37, x4 - 35} tt_A = 35 mark#_A(x1) = max{17, x1 - 35} U11_A(x1) = max{42, x1} U21_A(x1) = max{42, x1} U31_A(x1) = max{18, x1} U41_A(x1,x2) = max{18, x1, x2 - 8} U42_A(x1) = max{1, x1} U51_A(x1,x2) = max{32, x1, x2 - 8} U52_A(x1) = max{18, x1} U61_A(x1,x2) = max{19, x1, x2 - 8} U62_A(x1) = max{18, x1} U71_A(x1,x2,x3) = max{51, x1 + 3, x2, x3} a__U71#_A(x1,x2,x3) = max{17, x2 - 35, x3 - 36} mark_A(x1) = max{47, x1} a__U72#_A(x1,x2) = max{17, x2 - 35} a__isNat_A(x1) = max{32, x1 - 8} a__length#_A(x1) = max{17, x1 - 35} cons_A(x1,x2) = max{41, x1, x2} a__isNatList_A(x1) = max{19, x1 - 8} U72_A(x1,x2) = max{51, x1 + 1, x2} length_A(x1) = max{51, x1} U81_A(x1) = max{1, x1} U91_A(x1,x2,x3,x4) = max{133, x1 + 5, x2, x3 + 83, x4} a__U91#_A(x1,x2,x3,x4) = max{x2 - 36, x3 + 48, x4 - 35} a__U92#_A(x1,x2,x3,x4) = max{x1 + 2, x2 - 37, x4 - 35} U92_A(x1,x2,x3,x4) = max{132, x1 + 85, x2, x3 + 83, x4} U93_A(x1,x2,x3,x4) = max{132, x1 + 5, x2, x3 + 83, x4} take_A(x1,x2) = max{132, x1 + 83, x2} s_A(x1) = max{51, x1} a__zeros_A = 45 |0|_A = 44 zeros_A = 34 a__U11_A(x1) = max{43, x1} a__U21_A(x1) = max{42, x1} a__U31_A(x1) = max{19, x1} a__U41_A(x1,x2) = max{34, x1, x2 - 8} a__U42_A(x1) = max{35, x1} a__isNatIList_A(x1) = max{35, x1 - 8} a__U51_A(x1,x2) = max{33, x1, x2 - 8} a__U52_A(x1) = max{34, x1} a__U61_A(x1,x2) = max{19, x1, x2 - 8} a__U62_A(x1) = max{18, x1} a__U71_A(x1,x2,x3) = max{51, x1 + 3, x2, x3} a__U72_A(x1,x2) = max{51, x1 + 1, x2} a__length_A(x1) = max{51, x1} a__U81_A(x1) = max{46, x1} nil_A = 45 a__U91_A(x1,x2,x3,x4) = max{133, x1 + 5, x2, x3 + 83, x4} a__U92_A(x1,x2,x3,x4) = max{132, x1 + 85, x2, x3 + 83, x4} a__U93_A(x1,x2,x3,x4) = max{132, x1 + 5, x2, x3 + 83, x4} a__take_A(x1,x2) = max{132, x1 + 83, x2} isNatIList_A(x1) = max{1, x1 - 8} isNatList_A(x1) = max{19, x1 - 8} isNat_A(x1) = max{31, x1 - 8} precedence: mark = U91 = |0| = a__isNatIList = a__U91 = a__take = isNatIList > take = zeros > a__zeros > cons = U92 = a__U81 = a__U92 = a__U93 > U41 = a__U41 > U42 = a__U42 > a__isNatList = length = U93 = a__length > a__isNat = a__U21 > isNatList > U51 = a__U51 > U52 = a__U52 > isNat > U31 = a__U31 > U71 = a__U71 > a__U72 > s = a__U61 > U62 = a__U62 > U21 > tt = nil > a__U93# = mark# = U11 = U61 = a__U71# = a__U72# = a__length# = U72 = U81 = a__U91# = a__U92# = a__U11 partial status: pi(a__U93#) = [] pi(tt) = [] pi(mark#) = [] pi(U11) = [] pi(U21) = [] pi(U31) = [] pi(U41) = [] pi(U42) = [] pi(U51) = [1] pi(U52) = [] pi(U61) = [] pi(U62) = [] pi(U71) = [1] 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) = [1] 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) = [1] pi(a__U52) = [] pi(a__U61) = [] pi(a__U62) = [] pi(a__U71) = [1] pi(a__U72) = [] pi(a__length) = [] pi(a__U81) = [1] 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: p30 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)) -> 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#(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#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p9: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) 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#(length(X)) -> a__length#(mark(X)) p16: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p17: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p18: a__U72#(tt(),L) -> mark#(L) p19: mark#(U72(X1,X2)) -> mark#(X1) p20: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p21: a__U72#(tt(),L) -> a__length#(mark(L)) p22: mark#(U71(X1,X2,X3)) -> mark#(X1) p23: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) 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: max/plus interpretations on natural numbers: a__U93#_A(x1,x2,x3,x4) = max{x1 - 16, x2 + 5, x4 - 7} tt_A = 32 mark#_A(x1) = max{16, x1 - 7} s_A(x1) = x1 cons_A(x1,x2) = max{x1, x2 + 15} take_A(x1,x2) = max{17, x2} U93_A(x1,x2,x3,x4) = max{x1, x2 + 15, x4} mark_A(x1) = max{32, x1} U92_A(x1,x2,x3,x4) = max{x1, x2 + 15, x4} a__U92#_A(x1,x2,x3,x4) = max{16, x2 + 6, x4 - 7} a__isNat_A(x1) = 32 U91_A(x1,x2,x3,x4) = max{24, x1, x2 + 15, x4} a__U91#_A(x1,x2,x3,x4) = max{16, x1 - 40, x2 + 7, x4 - 7} U81_A(x1) = max{32, x1} length_A(x1) = max{28, x1} a__length#_A(x1) = max{21, x1 - 11} a__U71#_A(x1,x2,x3) = max{x1 - 11, x2 + 3} a__isNatList_A(x1) = 32 a__U72#_A(x1,x2) = max{2, x1 - 11, x2 + 1} U72_A(x1,x2) = max{31, x1, x2 + 13} U71_A(x1,x2,x3) = max{29, x1, x2 + 14} U62_A(x1) = max{23, x1} U61_A(x1,x2) = max{23, x1} U52_A(x1) = max{32, x1} U51_A(x1,x2) = max{30, x1} U42_A(x1) = max{1, x1} U41_A(x1,x2) = x1 U31_A(x1) = max{32, x1} U21_A(x1) = max{32, x1} U11_A(x1) = max{32, x1} a__zeros_A = 32 |0|_A = 0 zeros_A = 17 a__U11_A(x1) = max{32, x1} a__U21_A(x1) = max{32, x1} a__U31_A(x1) = max{32, x1} a__U41_A(x1,x2) = max{13, x1} a__U42_A(x1) = max{2, x1} a__isNatIList_A(x1) = 32 a__U51_A(x1,x2) = max{31, x1} a__U52_A(x1) = max{32, x1} a__U61_A(x1,x2) = max{31, x1} a__U62_A(x1) = max{32, x1} a__U71_A(x1,x2,x3) = max{30, x1, x2 + 14} a__U72_A(x1,x2) = max{31, x1, x2 + 13} a__length_A(x1) = max{32, x1} a__U81_A(x1) = max{32, x1} nil_A = 1 a__U91_A(x1,x2,x3,x4) = max{25, x1, x2 + 15, x4} a__U92_A(x1,x2,x3,x4) = max{x1, x2 + 15, x4} a__U93_A(x1,x2,x3,x4) = max{x1, x2 + 15, x4} a__take_A(x1,x2) = max{32, x2} isNatIList_A(x1) = 32 isNatList_A(x1) = 32 isNat_A(x1) = 32 precedence: mark = a__length > a__isNat > a__U21 > a__U11 > U21 > a__zeros = zeros > a__U71 > s = U72 = a__U72 > a__isNatIList > a__U41 > U41 > U71 = a__take > isNatIList > a__U93# = mark# = a__U92# = U91 = a__U91# = a__U91 > U31 = a__U31 > take = length = a__length# = a__U71# = a__U72# > U93 = a__U92 = a__U93 > cons > a__isNatList = a__U61 = a__U62 > U51 = a__U51 = nil > U52 = a__U52 > U61 > U62 > a__U81 > tt = U81 = |0| = a__U42 > U92 = isNatList > U11 = isNat > U42 partial status: pi(a__U93#) = [] pi(tt) = [] pi(mark#) = [] pi(s) = [] pi(cons) = [] pi(take) = [] pi(U93) = [] pi(mark) = [] pi(U92) = [2] pi(a__U92#) = [] pi(a__isNat) = [] pi(U91) = [2] pi(a__U91#) = [] pi(U81) = [] pi(length) = [] pi(a__length#) = [] pi(a__U71#) = [] pi(a__isNatList) = [] pi(a__U72#) = [] pi(U72) = [] pi(U71) = [2] 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) = [2] pi(a__U72) = [2] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [2] 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: 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p9: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) 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: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p16: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p17: a__U72#(tt(),L) -> mark#(L) p18: mark#(U72(X1,X2)) -> mark#(X1) p19: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p20: a__U72#(tt(),L) -> a__length#(mark(L)) p21: mark#(U71(X1,X2,X3)) -> mark#(X1) p22: mark#(U71(X1,X2,X3)) -> a__U71#(mark(X1),X2,X3) 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, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: 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#(X2) p30: mark#(cons(X1,X2)) -> mark#(X1) p31: 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: max/plus interpretations on natural numbers: a__U93#_A(x1,x2,x3,x4) = max{x1 - 36, x2 + 25, x4 - 2} tt_A = 6 mark#_A(x1) = max{20, x1 - 2} U11_A(x1) = x1 U21_A(x1) = max{20, x1} U31_A(x1) = max{23, x1} U41_A(x1,x2) = max{20, x1} U42_A(x1) = max{4, x1} U51_A(x1,x2) = max{25, x1} U52_A(x1) = max{5, x1} U61_A(x1,x2) = max{23, x1} U62_A(x1) = max{1, x1} U71_A(x1,x2,x3) = max{167, x1 + 103, x2 + 105, x3 + 103} a__U71#_A(x1,x2,x3) = max{100, x1 - 25, x2 + 65, x3 + 36} mark_A(x1) = max{63, x1} a__U72#_A(x1,x2) = max{100, x1 - 44, x2 + 64} a__isNat_A(x1) = 26 a__length#_A(x1) = max{100, x1 + 36} cons_A(x1,x2) = max{x1, x2 + 30} a__isNatList_A(x1) = 26 U72_A(x1,x2) = max{167, x1 + 104, x2 + 104} length_A(x1) = max{167, x1 + 103} U81_A(x1) = max{63, x1} U91_A(x1,x2,x3,x4) = max{x1, x2 + 30, x4} a__U91#_A(x1,x2,x3,x4) = max{x1 - 66, x2 + 27, x4 - 2} a__U92#_A(x1,x2,x3,x4) = max{x2 + 26, x4 - 2} U92_A(x1,x2,x3,x4) = max{x1, x2 + 30, x4} U93_A(x1,x2,x3,x4) = max{x1, x2 + 30, x4} take_A(x1,x2) = max{31, x2} s_A(x1) = max{32, x1} a__zeros_A = 62 |0|_A = 62 zeros_A = 5 a__U11_A(x1) = max{5, x1} a__U21_A(x1) = max{21, x1} a__U31_A(x1) = max{26, x1} a__U41_A(x1,x2) = max{26, x1} a__U42_A(x1) = max{5, x1} a__isNatIList_A(x1) = 26 a__U51_A(x1,x2) = max{26, x1} a__U52_A(x1) = max{5, x1} a__U61_A(x1,x2) = max{26, x1} a__U62_A(x1) = max{2, x1} a__U71_A(x1,x2,x3) = max{167, x1 + 103, x2 + 105, x3 + 103} a__U72_A(x1,x2) = max{167, x1 + 104, x2 + 104} a__length_A(x1) = max{167, x1 + 103} a__U81_A(x1) = max{63, x1} nil_A = 5 a__U91_A(x1,x2,x3,x4) = max{63, x1, x2 + 30, x4} a__U92_A(x1,x2,x3,x4) = max{63, x1, x2 + 30, x4} a__U93_A(x1,x2,x3,x4) = max{63, x1, x2 + 30, x4} a__take_A(x1,x2) = max{63, x2} isNatIList_A(x1) = 25 isNatList_A(x1) = 26 isNat_A(x1) = 26 precedence: a__U71# = a__U72# = a__length# = |0| > a__zeros > U42 = mark = a__U41 = a__U42 = a__isNatIList > a__isNatList = isNatList > a__isNat > U21 = a__U21 > a__U61 > U62 = a__U62 > zeros > U61 > nil > isNat > U11 = U41 = a__U11 > U31 = length = a__U31 = a__length > U71 = cons = U72 = U81 = U92 = take = a__U71 = a__U72 = a__U81 = a__U91 = a__U92 = a__U93 = a__take > U93 > tt = a__U51 = a__U52 > U51 > U91 > U52 > a__U93# = mark# = a__U91# = a__U92# = s = isNatIList 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) = [3] 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) = [1, 2] pi(a__U91#) = [] pi(a__U92#) = [] pi(U92) = [] pi(U93) = [] pi(take) = [2] 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) = [3] pi(a__U72) = [] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [1, 2] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [2] pi(isNatIList) = [] pi(isNatList) = [] pi(isNat) = [] The next rules are strictly ordered: p16 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#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p17: mark#(U72(X1,X2)) -> mark#(X1) p18: mark#(length(X)) -> mark#(X) p19: mark#(U81(X)) -> mark#(X) p20: mark#(U91(X1,X2,X3,X4)) -> a__U91#(mark(X1),X2,X3,X4) p21: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p22: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p23: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p24: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p25: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p26: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p27: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p28: mark#(take(X1,X2)) -> mark#(X2) p29: mark#(cons(X1,X2)) -> mark#(X1) p30: 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} -- 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p9: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) 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)) -> a__U71#(mark(X1),X2,X3) p19: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p20: a__U72#(tt(),L) -> a__length#(mark(L)) p21: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p22: mark#(U62(X)) -> mark#(X) p23: mark#(U61(X1,X2)) -> mark#(X1) p24: mark#(U52(X)) -> mark#(X) p25: mark#(U51(X1,X2)) -> mark#(X1) p26: mark#(U42(X)) -> mark#(X) p27: mark#(U41(X1,X2)) -> mark#(X1) p28: mark#(U31(X)) -> mark#(X) p29: mark#(U21(X)) -> mark#(X) p30: 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: max/plus interpretations on natural numbers: a__U93#_A(x1,x2,x3,x4) = max{x1 - 40, x2 + 55, x4 - 7} tt_A = 85 mark#_A(x1) = max{12, x1 - 7} s_A(x1) = max{57, x1} cons_A(x1,x2) = max{85, x1, x2 + 63} take_A(x1,x2) = max{22, x2} U93_A(x1,x2,x3,x4) = max{x1, x2 + 63, x4} mark_A(x1) = max{85, x1} U92_A(x1,x2,x3,x4) = max{x1, x2 + 63, x4} a__U92#_A(x1,x2,x3,x4) = max{x1 - 74, x2 + 55, x4 - 7} a__isNat_A(x1) = 85 U91_A(x1,x2,x3,x4) = max{x1, x2 + 63, x4} a__U91#_A(x1,x2,x3,x4) = max{x1 - 93, x2 + 55, x4 - 7} U81_A(x1) = x1 length_A(x1) = max{54, x1} U72_A(x1,x2) = max{x1, x2 + 56} a__U72#_A(x1,x2) = max{23, x1 - 37, x2 - 1} U71_A(x1,x2,x3) = max{x1, x2 + 62, x3 - 1} a__U71#_A(x1,x2,x3) = max{48, x1 - 124, x2 + 24} a__length#_A(x1) = max{48, x1 - 38} a__isNatList_A(x1) = 85 U62_A(x1) = max{1, x1} U61_A(x1,x2) = max{20, x1} U52_A(x1) = max{83, x1} U51_A(x1,x2) = max{11, x1} U42_A(x1) = max{1, x1} U41_A(x1,x2) = max{11, x1} U31_A(x1) = max{1, x1} U21_A(x1) = max{13, x1} U11_A(x1) = max{85, x1} a__zeros_A = 85 |0|_A = 82 zeros_A = 0 a__U11_A(x1) = max{85, x1} a__U21_A(x1) = max{13, x1} a__U31_A(x1) = max{84, x1} a__U41_A(x1,x2) = max{84, x1} a__U42_A(x1) = max{2, x1} a__isNatIList_A(x1) = 85 a__U51_A(x1,x2) = max{23, x1} a__U52_A(x1) = max{84, x1} a__U61_A(x1,x2) = max{21, x1} a__U62_A(x1) = max{85, x1} a__U71_A(x1,x2,x3) = max{x1, x2 + 62, x3 - 1} a__U72_A(x1,x2) = max{x1, x2 + 56} a__length_A(x1) = max{55, x1} a__U81_A(x1) = max{84, x1} nil_A = 83 a__U91_A(x1,x2,x3,x4) = max{x1, x2 + 63, x4} a__U92_A(x1,x2,x3,x4) = max{64, x1, x2 + 63, x4} a__U93_A(x1,x2,x3,x4) = max{65, x1, x2 + 63, x4} a__take_A(x1,x2) = max{85, x2} isNatIList_A(x1) = 84 isNatList_A(x1) = 85 isNat_A(x1) = 85 precedence: a__isNat = isNat > mark > U21 = a__U21 > |0| > a__isNatList = isNatList > a__length > a__U51 > a__U41 = a__U42 = a__isNatIList > a__take > a__U91 > a__U72# = a__U71# = a__length# > U51 > U91 = U42 > a__U11 > a__U92 > a__U93 > U93 > a__U31 > a__U93# = mark# = a__U92# = a__U91# > U92 > take > U31 > U61 = a__U61 > a__U71 = a__U72 > U62 = a__U62 > a__U52 > a__zeros > cons > nil > U52 > tt > zeros > U71 > isNatIList > U72 > a__U81 > s > U11 > U81 = length = U41 partial status: pi(a__U93#) = [] pi(tt) = [] pi(mark#) = [] pi(s) = [] pi(cons) = [] pi(take) = [2] pi(U93) = [] pi(mark) = [1] pi(U92) = [2] pi(a__U92#) = [] pi(a__isNat) = [] pi(U91) = [] pi(a__U91#) = [] pi(U81) = [] pi(length) = [1] pi(U72) = [2] 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) = [2] pi(a__U72) = [] pi(a__length) = [1] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [2] pi(a__U93) = [] pi(a__take) = [2] pi(isNatIList) = [] pi(isNatList) = [] pi(isNat) = [] The next rules are strictly ordered: p18 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p9: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) 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: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p19: a__U72#(tt(),L) -> a__length#(mark(L)) p20: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p21: mark#(U62(X)) -> mark#(X) p22: mark#(U61(X1,X2)) -> mark#(X1) p23: mark#(U52(X)) -> mark#(X) p24: mark#(U51(X1,X2)) -> mark#(X1) p25: mark#(U42(X)) -> mark#(X) p26: mark#(U41(X1,X2)) -> mark#(X1) p27: mark#(U31(X)) -> mark#(X) p28: mark#(U21(X)) -> mark#(X) p29: 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, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29} -- 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#(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)) -> a__U91#(mark(X1),X2,X3,X4) p20: a__U91#(tt(),IL,M,N) -> a__U92#(a__isNat(M),IL,M,N) p21: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p22: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p23: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p24: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p25: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p26: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p27: mark#(take(X1,X2)) -> mark#(X2) p28: mark#(cons(X1,X2)) -> mark#(X1) p29: 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: max/plus interpretations on natural numbers: a__U93#_A(x1,x2,x3,x4) = max{x1 + 50, x4 + 29} tt_A = 58 mark#_A(x1) = max{28, x1 - 2} U11_A(x1) = max{33, x1} U21_A(x1) = max{49, x1} U31_A(x1) = max{59, x1} U41_A(x1,x2) = max{63, x1} U42_A(x1) = max{32, x1} U51_A(x1,x2) = max{63, x1} U52_A(x1) = max{32, x1} U61_A(x1,x2) = max{63, x1} U62_A(x1) = max{63, x1} U72_A(x1,x2) = max{45, x1, x2 + 14} a__U72#_A(x1,x2) = max{x1 - 17, x2 + 8} mark_A(x1) = max{32, x1} a__length#_A(x1) = x1 + 8 cons_A(x1,x2) = max{80, x1, x2} a__U71#_A(x1,x2,x3) = max{46, x1 - 57, x2 + 8, x3 - 1} a__isNatList_A(x1) = 63 a__isNat_A(x1) = 63 length_A(x1) = max{48, x1 + 14} U81_A(x1) = max{186, x1 + 33} U91_A(x1,x2,x3,x4) = max{202, x1 + 124, x2 + 122, x3 + 153, x4 + 118} a__U91#_A(x1,x2,x3,x4) = max{x1 + 87, x2 + 62, x3 + 151, x4 + 115} a__U92#_A(x1,x2,x3,x4) = max{x1 - 5, x2 + 61, x4 + 114} U92_A(x1,x2,x3,x4) = max{192, x1 + 120, x2 + 122, x3 + 153, x4 + 117} U93_A(x1,x2,x3,x4) = max{179, x1 + 128, x2 + 122, x3 + 153, x4 + 81} take_A(x1,x2) = max{186, x1 + 153, x2 + 122} s_A(x1) = max{48, x1} a__zeros_A = 81 |0|_A = 81 zeros_A = 81 a__U11_A(x1) = max{33, x1} a__U21_A(x1) = max{49, x1} a__U31_A(x1) = max{59, x1} a__U41_A(x1,x2) = max{63, x1} a__U42_A(x1) = max{32, x1} a__isNatIList_A(x1) = 63 a__U51_A(x1,x2) = max{63, x1} a__U52_A(x1) = max{32, x1} a__U61_A(x1,x2) = max{63, x1} a__U62_A(x1) = max{63, x1} a__U71_A(x1,x2,x3) = max{81, x1 - 14, x2 + 14} a__U72_A(x1,x2) = max{45, x1, x2 + 14} a__length_A(x1) = max{48, x1 + 14} a__U81_A(x1) = max{186, x1 + 33} nil_A = 80 a__U91_A(x1,x2,x3,x4) = max{202, x1 + 124, x2 + 122, x3 + 153, x4 + 118} a__U92_A(x1,x2,x3,x4) = max{192, x1 + 120, x2 + 122, x3 + 153, x4 + 117} a__U93_A(x1,x2,x3,x4) = max{179, x1 + 128, x2 + 122, x3 + 153, x4 + 81} a__take_A(x1,x2) = max{186, x1 + 153, x2 + 122} isNatIList_A(x1) = 63 U71_A(x1,x2,x3) = max{81, x1 - 14, x2 + 14} isNatList_A(x1) = 63 isNat_A(x1) = 63 precedence: a__zeros = zeros > U41 = a__U41 = a__isNatIList = isNatIList > U42 = a__U42 > mark = a__isNatList = a__length > a__take > U81 = a__U81 > |0| > a__U61 > a__U91 > a__U51 > U51 > U31 = a__U31 > a__U52 > U11 = a__isNat = a__U11 = isNat > U61 = a__U92 = a__U93 > tt = a__U21 > cons > mark# = U21 = U52 = a__U72# = a__length# = a__U71# = isNatList > U62 = U92 = a__U62 > nil > a__U93# > U91 = a__U71 > a__U92# > a__U91# = take > a__U72 > U72 = s > U93 > U71 > length 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(U72) = [2] pi(a__U72#) = [] pi(mark) = [1] pi(a__length#) = [] pi(cons) = [] pi(a__U71#) = [] pi(a__isNatList) = [] pi(a__isNat) = [] pi(length) = [] pi(U81) = [] pi(U91) = [4] pi(a__U91#) = [4] pi(a__U92#) = [] pi(U92) = [] pi(U93) = [4] 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) = [2] pi(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [] pi(isNatIList) = [] pi(U71) = [] pi(isNatList) = [] pi(isNat) = [] The next rules are strictly ordered: p20 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#(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)) -> a__U91#(mark(X1),X2,X3,X4) p20: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p21: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p22: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p23: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p24: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p25: mark#(U93(X1,X2,X3,X4)) -> 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 estimated dependency graph contains the following SCCs: {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p20, p21, p22, p23, p24, p25, p26, p27, p28} -- 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(U92(X1,X2,X3,X4)) -> a__U92#(mark(X1),X2,X3,X4) p9: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p10: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p11: mark#(U81(X)) -> mark#(X) p12: mark#(length(X)) -> mark#(X) p13: mark#(U72(X1,X2)) -> mark#(X1) p14: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p15: a__U72#(tt(),L) -> mark#(L) p16: mark#(U62(X)) -> mark#(X) p17: mark#(U61(X1,X2)) -> mark#(X1) p18: mark#(U52(X)) -> mark#(X) p19: mark#(U51(X1,X2)) -> mark#(X1) p20: mark#(U42(X)) -> mark#(X) p21: mark#(U41(X1,X2)) -> mark#(X1) p22: mark#(U31(X)) -> mark#(X) p23: mark#(U21(X)) -> mark#(X) p24: mark#(U11(X)) -> mark#(X) p25: a__U72#(tt(),L) -> a__length#(mark(L)) p26: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p27: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),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 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: max/plus interpretations on natural numbers: a__U93#_A(x1,x2,x3,x4) = max{x1 + 1, x2 + 54, x3 + 59, x4 + 145} tt_A = 13 mark#_A(x1) = x1 + 59 s_A(x1) = x1 cons_A(x1,x2) = max{42, x1 + 25, x2} take_A(x1,x2) = max{140, x1 + 60, x2 + 123} U93_A(x1,x2,x3,x4) = max{x1 + 128, x2 + 123, x3 + 60, x4 + 145} mark_A(x1) = max{16, x1} U92_A(x1,x2,x3,x4) = max{x1 + 1, x2 + 123, x3 + 60, x4 + 146} a__U92#_A(x1,x2,x3,x4) = max{x2 + 56, x3 + 59, x4 + 146} a__isNat_A(x1) = max{13, x1 - 92} U91_A(x1,x2,x3,x4) = max{x1 + 59, x2 + 123, x3 + 60, x4 + 147} U81_A(x1) = max{122, x1 + 59} length_A(x1) = max{209, x1 + 192} U72_A(x1,x2) = max{209, x1 + 177, x2 + 192} a__U72#_A(x1,x2) = max{x1 + 90, x2 + 60} U62_A(x1) = max{76, x1 + 60} U61_A(x1,x2) = max{x1, x2 + 124} U52_A(x1) = max{45, x1} U51_A(x1,x2) = max{x1 + 30, x2 + 46} U42_A(x1) = max{52, x1} U41_A(x1,x2) = max{68, x1 + 52, x2 + 64} U31_A(x1) = max{33, x1 + 17} U21_A(x1) = max{1, x1} U11_A(x1) = max{117, x1 + 53} a__length#_A(x1) = max{103, x1 + 60} a__U71#_A(x1,x2,x3) = max{103, x1 + 13, x2 + 60, x3 - 1} a__isNatList_A(x1) = x1 + 46 a__zeros_A = 43 |0|_A = 0 zeros_A = 43 a__U11_A(x1) = max{117, x1 + 53} a__U21_A(x1) = max{12, x1} a__U31_A(x1) = max{33, x1 + 17} a__U41_A(x1,x2) = max{68, x1 + 52, x2 + 64} a__U42_A(x1) = max{52, x1} a__isNatIList_A(x1) = x1 + 64 a__U51_A(x1,x2) = max{x1 + 30, x2 + 46} a__U52_A(x1) = max{45, x1} a__U61_A(x1,x2) = max{x1, x2 + 124} a__U62_A(x1) = max{76, x1 + 60} a__U71_A(x1,x2,x3) = max{x2 + 192, x3 + 210} a__U72_A(x1,x2) = max{209, x1 + 177, x2 + 192} a__length_A(x1) = max{209, x1 + 192} a__U81_A(x1) = max{122, x1 + 59} nil_A = 12 a__U91_A(x1,x2,x3,x4) = max{x1 + 59, x2 + 123, x3 + 60, x4 + 147} a__U92_A(x1,x2,x3,x4) = max{x1 + 1, x2 + 123, x3 + 60, x4 + 146} a__U93_A(x1,x2,x3,x4) = max{x1 + 128, x2 + 123, x3 + 60, x4 + 145} a__take_A(x1,x2) = max{140, x1 + 60, x2 + 123} isNatIList_A(x1) = x1 + 64 U71_A(x1,x2,x3) = max{x2 + 192, x3 + 210} isNatList_A(x1) = x1 + 46 isNat_A(x1) = max{13, x1 - 92} precedence: s = mark = a__isNat = length = U72 = U61 = U52 = U42 = U31 = U21 = a__isNatList = |0| = a__U21 = a__U31 = a__U41 = a__U42 = a__isNatIList = a__U51 = a__U52 = a__U61 = a__U71 = a__U72 = a__length = nil = a__U91 = a__take = isNat > U91 = a__U72# = a__length# = a__U71# > a__zeros > U62 = a__U62 > a__U11 > isNatList > take > U11 > U81 = a__U81 = a__U92 > U93 = a__U93 > mark# = U92 = a__U92# = isNatIList > a__U93# > zeros > U41 > cons > tt > U51 = U71 partial status: pi(a__U93#) = [1, 3] pi(tt) = [] pi(mark#) = [1] pi(s) = [] pi(cons) = [] pi(take) = [] pi(U93) = [] pi(mark) = [] pi(U92) = [3, 4] pi(a__U92#) = [3, 4] pi(a__isNat) = [] pi(U91) = [] pi(U81) = [] pi(length) = [] pi(U72) = [] pi(a__U72#) = [] pi(U62) = [] pi(U61) = [] pi(U52) = [] pi(U51) = [2] pi(U42) = [] pi(U41) = [] pi(U31) = [] pi(U21) = [] pi(U11) = [1] pi(a__length#) = [] pi(a__U71#) = [] 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(a__length) = [] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [] pi(isNatIList) = [] pi(U71) = [] pi(isNatList) = [1] pi(isNat) = [] The next rules are strictly ordered: p8 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#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> a__U93#(mark(X1),X2,X3,X4) p7: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p8: a__U92#(tt(),IL,M,N) -> a__U93#(a__isNat(N),IL,M,N) p9: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p10: mark#(U81(X)) -> mark#(X) p11: mark#(length(X)) -> mark#(X) p12: mark#(U72(X1,X2)) -> mark#(X1) p13: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p14: a__U72#(tt(),L) -> mark#(L) p15: mark#(U62(X)) -> mark#(X) p16: mark#(U61(X1,X2)) -> mark#(X1) p17: mark#(U52(X)) -> mark#(X) p18: mark#(U51(X1,X2)) -> mark#(X1) p19: mark#(U42(X)) -> mark#(X) p20: mark#(U41(X1,X2)) -> mark#(X1) p21: mark#(U31(X)) -> mark#(X) p22: mark#(U21(X)) -> mark#(X) p23: mark#(U11(X)) -> mark#(X) p24: a__U72#(tt(),L) -> a__length#(mark(L)) p25: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p26: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),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: {p1, p2, p3, p4, p5, p6, p7, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__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#(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)) -> a__U93#(mark(X1),X2,X3,X4) p22: mark#(U93(X1,X2,X3,X4)) -> 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: max/plus interpretations on natural numbers: a__U93#_A(x1,x2,x3,x4) = max{109, x1 + 100, x2 + 9, x4 + 11} tt_A = 4 mark#_A(x1) = x1 + 10 U11_A(x1) = max{8, x1} U21_A(x1) = max{1, x1} U31_A(x1) = x1 + 9 U41_A(x1,x2) = max{x1 + 45, x2 + 62} U42_A(x1) = max{3, x1} U51_A(x1,x2) = max{16, x1 + 11, x2 - 16} U52_A(x1) = max{16, x1} U61_A(x1,x2) = max{x1 + 56, x2 + 102} U62_A(x1) = x1 + 11 U72_A(x1,x2) = max{28, x1 + 10, x2 + 8} a__U72#_A(x1,x2) = max{x1 + 20, x2 + 10} mark_A(x1) = x1 a__length#_A(x1) = max{16, x1 + 10} cons_A(x1,x2) = max{x1 + 43, x2} a__U71#_A(x1,x2,x3) = max{37, x1 + 2, x2 + 10, x3 - 1} a__isNatList_A(x1) = max{15, x1 - 16} a__isNat_A(x1) = max{16, x1 - 21} length_A(x1) = x1 + 8 U81_A(x1) = max{51, x1 + 45} U91_A(x1,x2,x3,x4) = max{x1 + 18, x2 + 118, x3 + 89, x4 + 117} U92_A(x1,x2,x3,x4) = max{x1 + 90, x2 + 118, x3 + 89, x4 + 117} U93_A(x1,x2,x3,x4) = max{x1 + 100, x2 + 118, x3 + 89, x4 + 117} take_A(x1,x2) = max{x1 + 89, x2 + 118} s_A(x1) = x1 a__zeros_A = 48 |0|_A = 5 zeros_A = 48 a__U11_A(x1) = max{8, x1} a__U21_A(x1) = max{1, x1} a__U31_A(x1) = x1 + 9 a__U41_A(x1,x2) = max{x1 + 45, x2 + 62} a__U42_A(x1) = max{3, x1} a__isNatIList_A(x1) = x1 + 62 a__U51_A(x1,x2) = max{16, x1 + 11, x2 - 16} a__U52_A(x1) = max{16, x1} a__U61_A(x1,x2) = max{x1 + 56, x2 + 102} a__U62_A(x1) = x1 + 11 a__U71_A(x1,x2,x3) = max{x1 + 24, x2 + 8, x3 + 27} a__U72_A(x1,x2) = max{28, x1 + 10, x2 + 8} a__length_A(x1) = x1 + 8 a__U81_A(x1) = max{51, x1 + 45} nil_A = 50 a__U91_A(x1,x2,x3,x4) = max{x1 + 18, x2 + 118, x3 + 89, x4 + 117} a__U92_A(x1,x2,x3,x4) = max{x1 + 90, x2 + 118, x3 + 89, x4 + 117} a__U93_A(x1,x2,x3,x4) = max{x1 + 100, x2 + 118, x3 + 89, x4 + 117} a__take_A(x1,x2) = max{x1 + 89, x2 + 118} isNatIList_A(x1) = x1 + 62 U71_A(x1,x2,x3) = max{x1 + 24, x2 + 8, x3 + 27} isNatList_A(x1) = max{15, x1 - 16} isNat_A(x1) = max{16, x1 - 21} precedence: a__zeros = zeros > mark > a__length > a__U81 = nil > a__U41 = a__U42 = a__isNatIList = a__take > take > length > U21 = U41 = a__isNat = U91 = U92 = a__U11 = a__U21 = a__U91 = a__U92 = isNat > U11 = U42 = U72 = U93 = a__U31 = a__U71 = a__U72 = a__U93 > isNatIList = U71 > |0| > a__isNatList = U81 = a__U61 = isNatList > U51 = cons = a__U51 > tt = a__U52 > U52 > mark# = U61 = a__U72# = a__length# = a__U71# > a__U93# = U31 = U62 = s = a__U62 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(U72) = [] pi(a__U72#) = [] pi(mark) = [1] pi(a__length#) = [] pi(cons) = [] pi(a__U71#) = [] pi(a__isNatList) = [] pi(a__isNat) = [] pi(length) = [] pi(U81) = [] pi(U91) = [] pi(U92) = [] pi(U93) = [4] pi(take) = [] pi(s) = [] pi(a__zeros) = [] pi(|0|) = [] pi(zeros) = [] pi(a__U11) = [] pi(a__U21) = [] pi(a__U31) = [1] pi(a__U41) = [] pi(a__U42) = [] pi(a__isNatIList) = [] pi(a__U51) = [1] 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) = [4] pi(a__take) = [] pi(isNatIList) = [] pi(U71) = [] pi(isNatList) = [] pi(isNat) = [] The next rules are strictly ordered: p21 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#(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#(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: {p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24} -- 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#(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#(U81(X)) -> mark#(X) p9: mark#(length(X)) -> mark#(X) p10: mark#(U72(X1,X2)) -> mark#(X1) p11: mark#(U72(X1,X2)) -> a__U72#(mark(X1),X2) p12: a__U72#(tt(),L) -> mark#(L) 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) p21: a__U72#(tt(),L) -> a__length#(mark(L)) p22: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p23: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),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 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{26, x1 + 20} U11_A(x1) = max{7, x1} s_A(x1) = max{21, x1} cons_A(x1,x2) = max{x1, x2 + 22} take_A(x1,x2) = x2 U93_A(x1,x2,x3,x4) = max{x1, x2 + 22, x4} U92_A(x1,x2,x3,x4) = max{x1, x2 + 22, x4} U91_A(x1,x2,x3,x4) = max{x1, x2 + 22, x4} U81_A(x1) = max{7, x1} length_A(x1) = max{11, x1} U72_A(x1,x2) = max{x1, x2 + 22} a__U72#_A(x1,x2) = max{x1 + 9, x2 + 21} mark_A(x1) = max{22, x1} tt_A = 17 U62_A(x1) = x1 U61_A(x1,x2) = x1 U52_A(x1) = max{17, x1} U51_A(x1,x2) = max{7, x1} U42_A(x1) = max{7, x1} U41_A(x1,x2) = max{15, x1} U31_A(x1) = max{7, x1} U21_A(x1) = max{6, x1} a__length#_A(x1) = max{26, x1 - 1} a__U71#_A(x1,x2,x3) = max{23, x1 + 9, x2 + 21, x3 - 1} a__isNatList_A(x1) = 17 a__isNat_A(x1) = 17 a__zeros_A = 22 |0|_A = 15 zeros_A = 0 a__U11_A(x1) = max{8, x1} a__U21_A(x1) = max{17, x1} a__U31_A(x1) = max{8, x1} a__U41_A(x1,x2) = max{15, x1} a__U42_A(x1) = max{16, x1} a__isNatIList_A(x1) = 17 a__U51_A(x1,x2) = max{8, x1} a__U52_A(x1) = max{17, x1} a__U61_A(x1,x2) = max{17, x1} a__U62_A(x1) = x1 a__U71_A(x1,x2,x3) = max{x1 - 1, x2 + 22, x3 - 3} a__U72_A(x1,x2) = max{x1, x2 + 22} a__length_A(x1) = max{12, x1} a__U81_A(x1) = max{16, x1} nil_A = 15 a__U91_A(x1,x2,x3,x4) = max{x1, x2 + 22, x4} a__U92_A(x1,x2,x3,x4) = max{x1, x2 + 22, x4} a__U93_A(x1,x2,x3,x4) = max{x1, x2 + 22, x4} a__take_A(x1,x2) = max{17, x2} isNatIList_A(x1) = 1 U71_A(x1,x2,x3) = max{x1 - 1, x2 + 22, x3 - 3} isNatList_A(x1) = 17 isNat_A(x1) = 1 precedence: mark > a__take > a__U81 > nil > a__U31 = a__isNatIList = isNatIList > a__isNat = isNat > U91 = a__U91 > a__U92 > U92 > |0| > a__zeros > zeros = a__length > U31 > mark# = a__U72# = a__length# = a__U71# = a__U93 > cons > take = length = a__U71 > a__isNatList > U11 = U93 = tt = U62 = U61 = U52 = U51 = U42 = U21 = a__U11 = a__U21 = a__U41 = a__U42 = a__U51 = a__U52 = a__U61 = a__U62 = isNatList > U41 > U71 > U72 = a__U72 > s = U81 partial status: pi(mark#) = [] pi(U11) = [] pi(s) = [] pi(cons) = [] pi(take) = [] pi(U93) = [] pi(U92) = [] pi(U91) = [1, 2] pi(U81) = [] pi(length) = [1] pi(U72) = [] pi(a__U72#) = [] pi(mark) = [1] pi(tt) = [] pi(U62) = [] pi(U61) = [] pi(U52) = [] pi(U51) = [] pi(U42) = [] pi(U41) = [] pi(U31) = [] pi(U21) = [] pi(a__length#) = [] pi(a__U71#) = [] pi(a__isNatList) = [] pi(a__isNat) = [] 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) = [1] pi(a__U81) = [] pi(nil) = [] pi(a__U91) = [1, 2] pi(a__U92) = [] pi(a__U93) = [] pi(a__take) = [] pi(isNatIList) = [] pi(U71) = [] 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#(s(X)) -> mark#(X) p3: mark#(cons(X1,X2)) -> mark#(X1) p4: mark#(take(X1,X2)) -> mark#(X2) 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#(U81(X)) -> mark#(X) p9: mark#(length(X)) -> mark#(X) p10: mark#(U72(X1,X2)) -> mark#(X1) p11: a__U72#(tt(),L) -> mark#(L) 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) p20: a__U72#(tt(),L) -> a__length#(mark(L)) p21: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N) p22: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),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: {p20, p21, p22} {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p12, p13, p14, p15, p16, p17, p18, p19} -- 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: max/plus interpretations on natural numbers: a__U71#_A(x1,x2,x3) = max{x1 - 19, x2 + 23} tt_A = 85 a__U72#_A(x1,x2) = max{53, x2 + 22} a__isNat_A(x1) = x1 + 123 a__length#_A(x1) = x1 + 21 mark_A(x1) = max{31, x1} cons_A(x1,x2) = max{x1 - 4, x2 + 28} a__isNatList_A(x1) = x1 + 46 a__zeros_A = 29 |0|_A = 30 zeros_A = 0 a__U11_A(x1) = max{84, x1 + 53} a__U21_A(x1) = x1 a__U31_A(x1) = 86 a__U41_A(x1,x2) = max{86, x1 - 202} a__U42_A(x1) = 85 a__isNatIList_A(x1) = max{86, x1 - 75} a__U51_A(x1,x2) = max{x1 - 82, x2 + 47} a__U52_A(x1) = max{2, x1} a__U61_A(x1,x2) = max{174, x1 - 42, x2 + 45} a__U62_A(x1) = max{44, x1 + 12} a__U71_A(x1,x2,x3) = max{x1 - 21, x2 + 28} a__U72_A(x1,x2) = max{63, x2 + 28} s_A(x1) = max{62, x1 + 28} a__length_A(x1) = x1 a__U81_A(x1) = 156 nil_A = 86 a__U91_A(x1,x2,x3,x4) = max{x1 + 102, x2 + 28, x3 + 155, x4 - 4} a__U92_A(x1,x2,x3,x4) = max{187, x1 + 32, x2 + 28, x3 + 155, x4 - 4} a__U93_A(x1,x2,x3,x4) = max{187, x2 + 28, x3 + 155, x4 - 4} take_A(x1,x2) = max{159, x1 + 127, x2} a__take_A(x1,x2) = max{159, x1 + 127, x2} U11_A(x1) = max{84, x1 + 53} U21_A(x1) = x1 U31_A(x1) = 86 U41_A(x1,x2) = max{86, x1 - 202} U42_A(x1) = 85 isNatIList_A(x1) = max{86, x1 - 75} U51_A(x1,x2) = max{x1 - 82, x2 + 47} U52_A(x1) = max{1, x1} U61_A(x1,x2) = max{174, x1 - 42, x2 + 45} U62_A(x1) = max{44, x1 + 12} U71_A(x1,x2,x3) = max{x1 - 21, x2 + 28} U72_A(x1,x2) = max{63, x2 + 28} length_A(x1) = x1 U81_A(x1) = 156 U91_A(x1,x2,x3,x4) = max{x1 + 102, x2 + 28, x3 + 155, x4 - 4} U92_A(x1,x2,x3,x4) = max{187, x1 + 32, x2 + 28, x3 + 155, x4 - 4} U93_A(x1,x2,x3,x4) = max{187, x2 + 28, x3 + 155, x4 - 4} isNatList_A(x1) = x1 + 46 isNat_A(x1) = x1 + 123 precedence: take = a__take > mark = a__U42 = a__isNatIList = a__U91 = a__U92 = a__U93 > U92 > cons = a__isNatList = a__U31 = U31 = U93 > a__U41 > a__U21 = a__U51 = a__U52 = U21 > U51 > tt = a__isNat = a__U11 > U52 > isNatIList > a__U71# = a__U72# = a__zeros = a__length = isNat > U91 = isNatList > a__U71 > U71 > a__length# > length > U41 > U42 > zeros > a__U61 > nil > a__U72 > s > |0| > a__U62 > U11 > a__U81 = U61 = U81 > U72 > U62 partial status: pi(a__U71#) = [] pi(tt) = [] pi(a__U72#) = [] pi(a__isNat) = [1] pi(a__length#) = [1] pi(mark) = [1] 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) = [1] 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) = [2] pi(U52) = [] pi(U61) = [2] pi(U62) = [] pi(U71) = [] pi(U72) = [] pi(length) = [] pi(U81) = [] pi(U91) = [3] pi(U92) = [] pi(U93) = [] pi(isNatList) = [1] pi(isNat) = [1] 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__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L) p2: 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 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#(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#(U72(X1,X2)) -> mark#(X1) p11: mark#(length(X)) -> mark#(X) 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#(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = max{5, x1 + 2} U11_A(x1) = x1 U21_A(x1) = x1 U31_A(x1) = x1 U41_A(x1,x2) = max{x1, x2} U42_A(x1) = x1 U51_A(x1,x2) = max{x1, x2} U52_A(x1) = x1 U61_A(x1,x2) = max{x1, x2} U62_A(x1) = x1 + 3 U72_A(x1,x2) = max{x1, x2} length_A(x1) = x1 U81_A(x1) = x1 + 1 U91_A(x1,x2,x3,x4) = max{x1, x4} U92_A(x1,x2,x3,x4) = max{x1, x4} U93_A(x1,x2,x3,x4) = max{x1, x4} take_A(x1,x2) = x2 cons_A(x1,x2) = max{x1, x2 + 1} s_A(x1) = max{3, x1} precedence: mark# = U11 = U21 = U31 = U41 = U51 = U52 = U61 > U42 = U62 = U72 = length = U81 = U91 = U92 = U93 = take = cons = s partial status: pi(mark#) = [1] pi(U11) = [1] pi(U21) = [1] pi(U31) = [1] pi(U41) = [1, 2] pi(U42) = [1] pi(U51) = [1, 2] pi(U52) = [1] pi(U61) = [1, 2] pi(U62) = [1] pi(U72) = [1, 2] pi(length) = [1] pi(U81) = [1] pi(U91) = [1, 4] pi(U92) = [1, 4] pi(U93) = [1, 4] pi(take) = [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#(U61(X1,X2)) -> mark#(X1) p8: mark#(U62(X)) -> mark#(X) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(length(X)) -> mark#(X) p11: mark#(U81(X)) -> mark#(X) 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#(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 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#(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#(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#(U81(X)) -> mark#(X) p9: mark#(length(X)) -> mark#(X) p10: mark#(U72(X1,X2)) -> 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) 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} U21_A(x1) = x1 s_A(x1) = x1 cons_A(x1,x2) = max{x1, x2} take_A(x1,x2) = x2 U93_A(x1,x2,x3,x4) = max{x1, x4} U92_A(x1,x2,x3,x4) = max{x1 + 1, x4 + 1} U91_A(x1,x2,x3,x4) = max{x1, x4 + 1} U81_A(x1) = x1 + 2 length_A(x1) = x1 U72_A(x1,x2) = max{x1, x2 + 1} U62_A(x1) = x1 U61_A(x1,x2) = max{x1 + 1, x2} U52_A(x1) = x1 U51_A(x1,x2) = x1 U42_A(x1) = x1 U41_A(x1,x2) = max{x1 + 1, x2 + 1} U31_A(x1) = x1 precedence: mark# = U21 = s = cons = take = U93 = U92 = U91 = U81 = length = U72 = U62 = U61 = U52 > U51 > U42 = U41 = U31 partial status: pi(mark#) = [] pi(U21) = [1] pi(s) = [1] pi(cons) = [2] pi(take) = [2] pi(U93) = [4] pi(U92) = [4] pi(U91) = [4] pi(U81) = [1] pi(length) = [1] pi(U72) = [2] pi(U62) = [1] pi(U61) = [2] pi(U52) = [1] pi(U51) = [] pi(U42) = [1] pi(U41) = [2] pi(U31) = [1] The next rules are strictly ordered: p8 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#(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#(length(X)) -> mark#(X) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U61(X1,X2)) -> mark#(X1) 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 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#(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#(U61(X1,X2)) -> mark#(X1) p8: mark#(U62(X)) -> mark#(X) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(length(X)) -> mark#(X) 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#(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = max{5, x1 + 2} U21_A(x1) = x1 U31_A(x1) = x1 U41_A(x1,x2) = max{x1, x2} U42_A(x1) = x1 U51_A(x1,x2) = max{x1, x2} U52_A(x1) = x1 U61_A(x1,x2) = max{x1, x2} U62_A(x1) = x1 U72_A(x1,x2) = max{x1, x2} length_A(x1) = x1 U91_A(x1,x2,x3,x4) = max{x1, x4} U92_A(x1,x2,x3,x4) = max{x1, x4} U93_A(x1,x2,x3,x4) = max{x1, x4} take_A(x1,x2) = x2 + 3 cons_A(x1,x2) = max{x1, x2} s_A(x1) = max{3, x1} precedence: mark# = U21 = U31 = U41 = U42 = U51 = U52 = U61 = U62 = U72 = length = U91 = U92 = U93 = take = cons = s partial status: pi(mark#) = [1] pi(U21) = [1] pi(U31) = [1] pi(U41) = [1, 2] pi(U42) = [1] pi(U51) = [1, 2] pi(U52) = [1] pi(U61) = [1, 2] pi(U62) = [1] pi(U72) = [1, 2] pi(length) = [1] pi(U91) = [1, 4] pi(U92) = [1, 4] pi(U93) = [1, 4] pi(take) = [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#(U31(X)) -> mark#(X) p2: mark#(U41(X1,X2)) -> mark#(X1) p3: mark#(U42(X)) -> mark#(X) p4: mark#(U51(X1,X2)) -> mark#(X1) p5: mark#(U52(X)) -> mark#(X) p6: mark#(U61(X1,X2)) -> mark#(X1) p7: mark#(U62(X)) -> mark#(X) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(length(X)) -> mark#(X) 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#(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 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#(U31(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#(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#(length(X)) -> mark#(X) p9: mark#(U72(X1,X2)) -> mark#(X1) p10: mark#(U62(X)) -> mark#(X) p11: mark#(U61(X1,X2)) -> mark#(X1) 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) 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: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} U31_A(x1) = x1 + 2 s_A(x1) = x1 cons_A(x1,x2) = max{x1, x2} take_A(x1,x2) = x2 U93_A(x1,x2,x3,x4) = max{x1, x4 + 1} U92_A(x1,x2,x3,x4) = max{x1, x4 + 1} U91_A(x1,x2,x3,x4) = max{x1, x4 + 1} length_A(x1) = x1 U72_A(x1,x2) = max{x1 + 1, x2 + 1} U62_A(x1) = x1 U61_A(x1,x2) = max{x1, x2} U52_A(x1) = x1 U51_A(x1,x2) = max{x1, x2 + 1} U42_A(x1) = x1 + 1 U41_A(x1,x2) = max{1, x1, x2} precedence: mark# = U31 = s = cons = take = U93 = U92 = U91 > length = U72 = U62 = U61 = U52 = U51 = U42 = U41 partial status: pi(mark#) = [] pi(U31) = [1] pi(s) = [1] pi(cons) = [2] pi(take) = [2] pi(U93) = [4] pi(U92) = [4] pi(U91) = [4] pi(length) = [1] pi(U72) = [2] pi(U62) = [1] pi(U61) = [2] pi(U52) = [1] pi(U51) = [2] pi(U42) = [1] pi(U41) = [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#(s(X)) -> mark#(X) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(length(X)) -> mark#(X) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(U62(X)) -> mark#(X) p10: mark#(U61(X1,X2)) -> mark#(X1) p11: mark#(U52(X)) -> mark#(X) p12: mark#(U51(X1,X2)) -> mark#(X1) p13: mark#(U42(X)) -> mark#(X) p14: mark#(U41(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 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#(s(X)) -> mark#(X) p2: mark#(U41(X1,X2)) -> mark#(X1) p3: mark#(U42(X)) -> mark#(X) p4: mark#(U51(X1,X2)) -> mark#(X1) p5: mark#(U52(X)) -> mark#(X) p6: mark#(U61(X1,X2)) -> mark#(X1) p7: mark#(U62(X)) -> mark#(X) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(length(X)) -> mark#(X) 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#(X2) p14: mark#(cons(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} s_A(x1) = x1 + 2 U41_A(x1,x2) = max{x1, x2} U42_A(x1) = x1 U51_A(x1,x2) = x1 U52_A(x1) = x1 U61_A(x1,x2) = max{x1, x2 + 1} U62_A(x1) = x1 U72_A(x1,x2) = max{x1, x2 + 1} length_A(x1) = x1 U91_A(x1,x2,x3,x4) = max{x1, x4 + 1} U92_A(x1,x2,x3,x4) = max{x1, x4} U93_A(x1,x2,x3,x4) = max{x1, x4} take_A(x1,x2) = x2 cons_A(x1,x2) = max{x1, x2 + 1} precedence: mark# = s = U41 = U42 = U51 > U52 = U61 = U62 = U72 = length = U91 = U92 = U93 = take = cons partial status: pi(mark#) = [] pi(s) = [1] pi(U41) = [2] pi(U42) = [1] pi(U51) = [] pi(U52) = [1] pi(U61) = [2] pi(U62) = [1] pi(U72) = [2] pi(length) = [1] pi(U91) = [4] pi(U92) = [4] pi(U93) = [4] pi(take) = [2] pi(cons) = [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#(U41(X1,X2)) -> mark#(X1) p2: mark#(U42(X)) -> mark#(X) p3: mark#(U51(X1,X2)) -> mark#(X1) p4: mark#(U52(X)) -> mark#(X) p5: mark#(U61(X1,X2)) -> mark#(X1) p6: mark#(U62(X)) -> mark#(X) p7: mark#(U72(X1,X2)) -> mark#(X1) p8: mark#(length(X)) -> mark#(X) 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#(X2) p13: mark#(cons(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 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#(U41(X1,X2)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(length(X)) -> mark#(X) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(U62(X)) -> mark#(X) p10: mark#(U61(X1,X2)) -> mark#(X1) 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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} U41_A(x1,x2) = max{x1 + 1, x2 + 1} cons_A(x1,x2) = max{x1, x2 + 1} take_A(x1,x2) = x2 U93_A(x1,x2,x3,x4) = max{x1, x4} U92_A(x1,x2,x3,x4) = max{x1, x4} U91_A(x1,x2,x3,x4) = max{x1, x4} length_A(x1) = x1 U72_A(x1,x2) = max{x1, x2} U62_A(x1) = x1 + 2 U61_A(x1,x2) = max{x1, x2} U52_A(x1) = max{1, x1} U51_A(x1,x2) = max{x1, x2} U42_A(x1) = x1 precedence: mark# = U41 = cons = take = U93 = U92 = U91 = length = U72 = U62 = U61 = U52 = U51 = U42 partial status: pi(mark#) = [] pi(U41) = [2] pi(cons) = [2] pi(take) = [2] pi(U93) = [4] pi(U92) = [4] pi(U91) = [4] pi(length) = [1] pi(U72) = [2] pi(U62) = [1] pi(U61) = [2] pi(U52) = [1] pi(U51) = [2] pi(U42) = [1] The next rules are strictly ordered: p9 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U41(X1,X2)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(length(X)) -> mark#(X) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(U61(X1,X2)) -> mark#(X1) p10: mark#(U52(X)) -> mark#(X) p11: mark#(U51(X1,X2)) -> mark#(X1) 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 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#(U41(X1,X2)) -> mark#(X1) p2: mark#(U42(X)) -> mark#(X) p3: mark#(U51(X1,X2)) -> mark#(X1) p4: mark#(U52(X)) -> mark#(X) p5: mark#(U61(X1,X2)) -> mark#(X1) p6: mark#(U72(X1,X2)) -> mark#(X1) p7: mark#(length(X)) -> mark#(X) 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#(X2) p12: mark#(cons(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} U41_A(x1,x2) = max{x1 + 1, x2} U42_A(x1) = x1 + 2 U51_A(x1,x2) = max{x1, x2} U52_A(x1) = x1 U61_A(x1,x2) = max{x1 + 1, x2} U72_A(x1,x2) = max{x1 + 1, x2} length_A(x1) = x1 U91_A(x1,x2,x3,x4) = max{x1, x4} U92_A(x1,x2,x3,x4) = max{x1, x4 + 1} U93_A(x1,x2,x3,x4) = max{x1, x4 + 1} take_A(x1,x2) = max{x1 + 1, x2} cons_A(x1,x2) = max{x1, x2 + 1} precedence: mark# = U41 = U42 = U51 = U52 = U61 = U72 = length = U91 = U92 = U93 = take = cons partial status: pi(mark#) = [] pi(U41) = [2] pi(U42) = [1] pi(U51) = [2] pi(U52) = [1] pi(U61) = [2] pi(U72) = [2] pi(length) = [1] pi(U91) = [4] pi(U92) = [4] pi(U93) = [4] pi(take) = [2] pi(cons) = [2] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U41(X1,X2)) -> mark#(X1) p2: mark#(U51(X1,X2)) -> mark#(X1) p3: mark#(U52(X)) -> mark#(X) p4: mark#(U61(X1,X2)) -> mark#(X1) p5: mark#(U72(X1,X2)) -> mark#(X1) p6: mark#(length(X)) -> mark#(X) 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#(X2) p11: mark#(cons(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 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#(U41(X1,X2)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(take(X1,X2)) -> mark#(X2) p4: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(length(X)) -> mark#(X) p8: mark#(U72(X1,X2)) -> mark#(X1) p9: mark#(U61(X1,X2)) -> mark#(X1) p10: mark#(U52(X)) -> mark#(X) p11: mark#(U51(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 2} U41_A(x1,x2) = max{x1, x2 + 1} cons_A(x1,x2) = max{x1, x2 + 1} take_A(x1,x2) = max{x1 + 3, x2 + 1} U93_A(x1,x2,x3,x4) = max{x1 + 1, x4 + 1} U92_A(x1,x2,x3,x4) = max{x1 + 1, x4} U91_A(x1,x2,x3,x4) = max{x1, x4 + 1} length_A(x1) = x1 U72_A(x1,x2) = max{x1 + 1, x2 + 1} U61_A(x1,x2) = max{x1, x2 + 3} U52_A(x1) = x1 + 2 U51_A(x1,x2) = max{x1, x2} precedence: mark# = U41 = cons = take = U93 = U92 = U91 = length = U72 = U61 = U52 = U51 partial status: pi(mark#) = [] pi(U41) = [2] pi(cons) = [2] pi(take) = [2] pi(U93) = [4] pi(U92) = [4] pi(U91) = [4] pi(length) = [1] pi(U72) = [2] pi(U61) = [1, 2] pi(U52) = [1] pi(U51) = [2] 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#(U41(X1,X2)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(length(X)) -> mark#(X) p7: mark#(U72(X1,X2)) -> mark#(X1) p8: mark#(U61(X1,X2)) -> mark#(X1) p9: mark#(U52(X)) -> mark#(X) p10: mark#(U51(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 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#(U41(X1,X2)) -> mark#(X1) p2: mark#(U51(X1,X2)) -> mark#(X1) p3: mark#(U52(X)) -> mark#(X) p4: mark#(U61(X1,X2)) -> mark#(X1) p5: mark#(U72(X1,X2)) -> mark#(X1) p6: mark#(length(X)) -> mark#(X) 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#(cons(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: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 4 U41_A(x1,x2) = max{x1, x2} U51_A(x1,x2) = max{x1 + 1, x2} U52_A(x1) = x1 U61_A(x1,x2) = max{x1 + 1, x2} U72_A(x1,x2) = max{x1 + 2, x2 + 2} length_A(x1) = x1 U91_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4} U92_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4 + 1} U93_A(x1,x2,x3,x4) = max{x1 + 1, x2 + 1, x3 - 1, x4} cons_A(x1,x2) = max{x1, x2 + 1} precedence: mark# = U41 = U51 = U52 = U61 = U72 = length = U91 = U92 = U93 = cons partial status: pi(mark#) = [] pi(U41) = [2] pi(U51) = [2] pi(U52) = [1] pi(U61) = [2] pi(U72) = [2] pi(length) = [1] pi(U91) = [4] pi(U92) = [4] pi(U93) = [4] pi(cons) = [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#(U41(X1,X2)) -> mark#(X1) p2: mark#(U51(X1,X2)) -> mark#(X1) p3: mark#(U52(X)) -> mark#(X) p4: mark#(U61(X1,X2)) -> mark#(X1) p5: mark#(length(X)) -> mark#(X) 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#(cons(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 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#(U41(X1,X2)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(length(X)) -> mark#(X) p7: mark#(U61(X1,X2)) -> mark#(X1) p8: mark#(U52(X)) -> mark#(X) p9: mark#(U51(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} U41_A(x1,x2) = max{x1, x2 + 1} cons_A(x1,x2) = max{x1, x2 + 1} U93_A(x1,x2,x3,x4) = max{x1 + 1, x4 + 1} U92_A(x1,x2,x3,x4) = max{x1, x4 + 1} U91_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 2, x3 + 2, x4 + 2} length_A(x1) = x1 U61_A(x1,x2) = x1 + 1 U52_A(x1) = x1 + 5 U51_A(x1,x2) = max{x1, x2} precedence: mark# = U41 = cons = U93 = U92 = U91 = length = U61 = U52 = U51 partial status: pi(mark#) = [] pi(U41) = [2] pi(cons) = [2] pi(U93) = [4] pi(U92) = [4] pi(U91) = [4] pi(length) = [1] pi(U61) = [] pi(U52) = [1] pi(U51) = [2] The next rules are strictly ordered: p8 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U41(X1,X2)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(length(X)) -> mark#(X) p7: mark#(U61(X1,X2)) -> mark#(X1) p8: mark#(U51(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 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#(U41(X1,X2)) -> mark#(X1) p2: mark#(U51(X1,X2)) -> mark#(X1) p3: mark#(U61(X1,X2)) -> mark#(X1) p4: mark#(length(X)) -> mark#(X) p5: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p8: mark#(cons(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{3, x1 + 2} U41_A(x1,x2) = max{x1, x2 + 1} U51_A(x1,x2) = max{x1, x2} U61_A(x1,x2) = max{x1, x2} length_A(x1) = x1 U91_A(x1,x2,x3,x4) = max{x1, x4 + 1} U92_A(x1,x2,x3,x4) = max{x1, x4} U93_A(x1,x2,x3,x4) = max{1, x1, x4} cons_A(x1,x2) = max{1, x1, x2} precedence: mark# = U41 = U51 > U61 = length = U91 = U92 = U93 = cons partial status: pi(mark#) = [1] pi(U41) = [1, 2] pi(U51) = [1, 2] pi(U61) = [1, 2] pi(length) = [1] pi(U91) = [1, 4] pi(U92) = [1, 4] pi(U93) = [1, 4] pi(cons) = [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#(U51(X1,X2)) -> mark#(X1) p2: mark#(U61(X1,X2)) -> mark#(X1) p3: mark#(length(X)) -> mark#(X) p4: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p7: mark#(cons(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 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#(U51(X1,X2)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(length(X)) -> mark#(X) p7: mark#(U61(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{3, x1 + 2} U51_A(x1,x2) = max{x1, x2} cons_A(x1,x2) = max{x1, x2} U93_A(x1,x2,x3,x4) = max{x1, x4 + 1} U92_A(x1,x2,x3,x4) = max{x1, x3 + 1, x4 + 1} U91_A(x1,x2,x3,x4) = max{x1, x4 + 1} length_A(x1) = max{3, x1 + 2} U61_A(x1,x2) = max{x1, x2 + 1} precedence: mark# = U51 = cons = U93 = U92 = U91 = length = U61 partial status: pi(mark#) = [] pi(U51) = [2] pi(cons) = [2] pi(U93) = [4] pi(U92) = [4] pi(U91) = [4] pi(length) = [1] pi(U61) = [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#(U51(X1,X2)) -> mark#(X1) p2: mark#(cons(X1,X2)) -> mark#(X1) p3: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(U61(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 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#(U51(X1,X2)) -> mark#(X1) p2: mark#(U61(X1,X2)) -> mark#(X1) p3: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p6: mark#(cons(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} U51_A(x1,x2) = max{x1, x2 + 1} U61_A(x1,x2) = max{x1 + 1, x2 + 1} U91_A(x1,x2,x3,x4) = max{x1 + 1, x4 + 1} U92_A(x1,x2,x3,x4) = max{x1, x4 + 1} U93_A(x1,x2,x3,x4) = max{x1, x4 + 1} cons_A(x1,x2) = max{3, x1 + 2, x2 + 2} precedence: mark# = U51 = U61 = U91 = U92 = U93 = cons partial status: pi(mark#) = [] pi(U51) = [2] pi(U61) = [2] pi(U91) = [4] pi(U92) = [4] pi(U93) = [4] pi(cons) = [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#(U51(X1,X2)) -> mark#(X1) p2: mark#(U61(X1,X2)) -> mark#(X1) p3: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p5: 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, p5} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U51(X1,X2)) -> mark#(X1) p2: mark#(U93(X1,X2,X3,X4)) -> mark#(X1) p3: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p5: mark#(U61(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: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} U51_A(x1,x2) = max{x1 + 1, x2} U93_A(x1,x2,x3,x4) = max{x1 + 2, x2 + 2, x3 + 2, x4 + 2} U92_A(x1,x2,x3,x4) = max{x1 + 1, x4} U91_A(x1,x2,x3,x4) = max{x1 + 5, x2 + 5, x3 + 5, x4 + 5} U61_A(x1,x2) = max{x1 + 1, x2} precedence: mark# = U51 = U93 = U92 = U91 = U61 partial status: pi(mark#) = [] pi(U51) = [2] pi(U93) = [4] pi(U92) = [4] pi(U91) = [4] pi(U61) = [2] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U51(X1,X2)) -> mark#(X1) p2: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p3: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U61(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 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#(U51(X1,X2)) -> mark#(X1) p2: mark#(U61(X1,X2)) -> mark#(X1) p3: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p4: mark#(U92(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 2 U51_A(x1,x2) = max{x1, x2} U61_A(x1,x2) = max{x1, x2} U91_A(x1,x2,x3,x4) = max{x1, x4} U92_A(x1,x2,x3,x4) = max{x1, x4} precedence: mark# > U51 = U61 = U91 = U92 partial status: pi(mark#) = [1] pi(U51) = [1, 2] pi(U61) = [1, 2] pi(U91) = [1, 4] pi(U92) = [1, 4] 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#(U61(X1,X2)) -> mark#(X1) p2: mark#(U91(X1,X2,X3,X4)) -> mark#(X1) p3: mark#(U92(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U61(X1,X2)) -> mark#(X1) p2: mark#(U92(X1,X2,X3,X4)) -> mark#(X1) p3: mark#(U91(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 3} U61_A(x1,x2) = max{x1 + 1, x2} U92_A(x1,x2,x3,x4) = max{x1, x4 + 1} U91_A(x1,x2,x3,x4) = max{3, x1 + 2, x2 + 2, x3 + 2, x4 + 2} precedence: mark# = U61 = U92 = U91 partial status: pi(mark#) = [] pi(U61) = [2] pi(U92) = [4] pi(U91) = [4] 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#(U61(X1,X2)) -> mark#(X1) p2: mark#(U92(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U61(X1,X2)) -> mark#(X1) p2: mark#(U92(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 3 U61_A(x1,x2) = max{x1 + 1, x2 + 1} U92_A(x1,x2,x3,x4) = max{x1, x2 - 1, x3 - 1, x4} precedence: mark# = U61 = U92 partial status: pi(mark#) = [] pi(U61) = [2] pi(U92) = [1, 4] 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#(U92(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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(U92(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 set of usable rules consists of (no rules) Take the reduction pair: weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = max{4, x1 + 2} U92_A(x1,x2,x3,x4) = max{x1 + 3, x2 + 3, x3 + 3, x4 + 3} precedence: mark# = U92 partial status: pi(mark#) = [] pi(U92) = [4] 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: max/plus interpretations on natural numbers: a__U41#_A(x1,x2) = max{179, x1 + 149, x2 + 155} tt_A = 6 a__isNatIList#_A(x1) = max{154, x1 + 106} cons_A(x1,x2) = max{x1 + 97, x2 + 70} a__isNat#_A(x1) = max{150, x1 + 98} s_A(x1) = max{2, x1} length_A(x1) = x1 + 56 a__isNatList#_A(x1) = max{153, x1 + 79} take_A(x1,x2) = max{x1 + 19, x2 + 78} a__U61#_A(x1,x2) = max{155, x1 + 73, x2 + 106} a__isNat_A(x1) = max{28, x1 + 24} a__U51#_A(x1,x2) = max{152, x1 + 147, x2 + 148} a__U42_A(x1) = x1 + 7 U42_A(x1) = x1 + 7 a__U31_A(x1) = max{4, x1 + 1} a__U41_A(x1,x2) = max{x1 - 2, x2 + 70} a__isNatIList_A(x1) = x1 + 62 U31_A(x1) = 0 U41_A(x1,x2) = max{x1 - 2, x2 + 70} a__U52_A(x1) = x1 + 40 a__U62_A(x1) = x1 + 1 a__isNatList_A(x1) = x1 + 61 zeros_A = 7 isNatIList_A(x1) = 0 U52_A(x1) = x1 + 40 U62_A(x1) = 0 a__U51_A(x1,x2) = max{x1 + 104, x2 + 102} a__U61_A(x1,x2) = max{x1 - 4, x2 + 138} U51_A(x1,x2) = max{x1 + 104, x2 + 102} U61_A(x1,x2) = max{x1 - 4, x2 + 138} a__U11_A(x1) = max{59, x1 - 2} a__U21_A(x1) = max{27, x1 - 3} nil_A = 5 U11_A(x1) = max{59, x1 - 3} U21_A(x1) = max{27, x1 - 4} isNatList_A(x1) = max{60, x1 + 1} |0|_A = 0 isNat_A(x1) = x1 + 24 precedence: a__U41# = tt = a__isNatIList# = cons = a__isNat# = s = length = a__isNatList# = take = a__U61# = a__isNat = a__U51# = a__U42 = U42 = a__U31 = a__U41 = a__isNatIList = U31 = U41 = a__U52 = a__U62 = a__isNatList = zeros = U52 = U62 = a__U51 = a__U61 = U51 = U61 = a__U11 = a__U21 > isNatIList = nil = U11 = U21 = isNatList = |0| = isNat partial status: pi(a__U41#) = [] pi(tt) = [] pi(a__isNatIList#) = [1] pi(cons) = [2] pi(a__isNat#) = [] pi(s) = [1] pi(length) = [1] pi(a__isNatList#) = [] pi(take) = [2] pi(a__U61#) = [2] pi(a__isNat) = [1] 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) = [1] 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#(cons(V1,V2)) -> a__isNat#(V1) 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, p8, p9, p10, p11} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) p2: a__isNat#(length(V1)) -> a__isNatList#(V1) 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#(s(V1)) -> a__isNat#(V1) p7: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p8: a__U61#(tt(),V2) -> a__isNatIList#(V2) p9: a__isNatIList#(V) -> a__isNatList#(V) p10: a__isNatList#(take(V1,V2)) -> 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: max/plus interpretations on natural numbers: a__isNatIList#_A(x1) = x1 + 33 cons_A(x1,x2) = max{x1 - 8, x2 + 17} a__isNat#_A(x1) = max{24, x1 - 1} length_A(x1) = x1 + 33 a__isNatList#_A(x1) = x1 + 7 a__U51#_A(x1,x2) = max{x1 - 33, x2 + 7} a__isNat_A(x1) = max{50, x1 + 25} tt_A = 0 s_A(x1) = max{23, x1} take_A(x1,x2) = max{x1 + 105, x2 + 139} a__U61#_A(x1,x2) = x2 + 146 a__U42_A(x1) = max{12, x1 - 2} U42_A(x1) = max{12, x1 - 2} a__U31_A(x1) = max{11, x1 - 39} a__U41_A(x1,x2) = 16 a__isNatIList_A(x1) = 17 U31_A(x1) = max{11, x1 - 40} U41_A(x1,x2) = 16 a__U52_A(x1) = max{17, x1 - 54} a__U62_A(x1) = 0 a__isNatList_A(x1) = 55 zeros_A = 1 isNatIList_A(x1) = 17 U52_A(x1) = max{16, x1 - 55} U62_A(x1) = 0 a__U51_A(x1,x2) = 17 a__U61_A(x1,x2) = 55 U51_A(x1,x2) = 17 U61_A(x1,x2) = 55 a__U11_A(x1) = max{57, x1 - 2} a__U21_A(x1) = max{24, x1 - 24} nil_A = 1 U11_A(x1) = max{57, x1 - 2} U21_A(x1) = max{24, x1 - 24} isNatList_A(x1) = 55 |0|_A = 1 isNat_A(x1) = x1 + 25 precedence: a__isNatIList# = cons = a__isNat# = length = a__isNatList# = a__U51# = a__isNat = tt = s = take = a__U61# = a__U42 = U42 = a__U31 = a__U41 = a__isNatIList = U31 = U41 = a__U52 = a__U62 = a__isNatList = zeros = isNatIList = U52 = a__U51 = a__U61 = U51 = U61 = a__U11 = a__U21 > U62 = nil > U11 = U21 = isNatList = |0| = isNat partial status: pi(a__isNatIList#) = [] pi(cons) = [2] pi(a__isNat#) = [] pi(length) = [1] pi(a__isNatList#) = [] pi(a__U51#) = [2] pi(a__isNat) = [1] pi(tt) = [] pi(s) = [1] pi(take) = [2] pi(a__U61#) = [] 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) = [] 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: p3 We remove them from the problem. -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) p2: a__isNat#(length(V1)) -> a__isNatList#(V1) p3: a__U51#(tt(),V2) -> a__isNatList#(V2) p4: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p5: a__isNat#(s(V1)) -> 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#(V) -> a__isNatList#(V) p9: a__isNatList#(take(V1,V2)) -> 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, p4, p5, p6, p7, p8, p9} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) 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#(V) -> a__isNatList#(V) p8: a__isNatList#(cons(V1,V2)) -> 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: max/plus interpretations on natural numbers: a__isNatIList#_A(x1) = x1 + 5 cons_A(x1,x2) = max{x1 + 24, x2 + 24} a__isNat#_A(x1) = max{4, x1 + 2} s_A(x1) = max{4, x1 + 3} length_A(x1) = x1 + 8 a__isNatList#_A(x1) = max{5, x1 - 16} take_A(x1,x2) = max{x1 + 26, x2 + 26} a__U61#_A(x1,x2) = max{x1 - 2, x2 + 6} a__isNat_A(x1) = x1 + 10 tt_A = 8 a__U42_A(x1) = max{24, x1 - 25} U42_A(x1) = max{24, x1 - 25} a__U31_A(x1) = 26 a__U41_A(x1,x2) = 25 a__isNatIList_A(x1) = 26 U31_A(x1) = 26 U41_A(x1,x2) = 25 a__U52_A(x1) = max{23, x1} a__U62_A(x1) = max{1, x1} a__isNatList_A(x1) = x1 + 23 zeros_A = 0 isNatIList_A(x1) = 26 U52_A(x1) = max{23, x1 - 1} U62_A(x1) = max{0, x1 - 1} a__U51_A(x1,x2) = max{x1 + 14, x2 + 24} a__U61_A(x1,x2) = max{x1 + 39, x2 + 39} U51_A(x1,x2) = max{x1 + 14, x2 + 24} U61_A(x1,x2) = max{x1 + 1, x2 + 39} a__U11_A(x1) = max{17, x1 - 10} a__U21_A(x1) = max{7, x1 + 3} nil_A = 9 U11_A(x1) = max{1, x1 - 11} U21_A(x1) = x1 + 3 isNatList_A(x1) = max{20, x1 + 1} |0|_A = 9 isNat_A(x1) = max{9, x1 - 1} precedence: cons > a__isNatIList# = s = length = a__U61# > take > a__isNat# = a__isNatList# = a__isNat = tt = a__U42 = U42 = a__U31 = a__U41 = a__isNatIList = U31 = U41 = a__U52 = a__U62 = a__isNatList = zeros = isNatIList = U52 = U62 = a__U51 = a__U61 = U51 = U61 = a__U11 = a__U21 = nil = U11 = U21 = isNatList = |0| = isNat partial status: pi(a__isNatIList#) = [] pi(cons) = [1, 2] pi(a__isNat#) = [1] pi(s) = [1] pi(length) = [1] pi(a__isNatList#) = [] pi(take) = [1, 2] pi(a__U61#) = [] pi(a__isNat) = [] pi(tt) = [] 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) = [1] 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__isNat#(s(V1)) -> a__isNat#(V1) p2: a__isNat#(length(V1)) -> a__isNatList#(V1) p3: a__isNatList#(take(V1,V2)) -> a__isNat#(V1) p4: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p5: a__U61#(tt(),V2) -> a__isNatIList#(V2) p6: a__isNatIList#(V) -> a__isNatList#(V) p7: a__isNatList#(cons(V1,V2)) -> 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(s(V1)) -> a__isNat#(V1) p2: a__isNat#(length(V1)) -> a__isNatList#(V1) p3: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p4: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p5: a__U61#(tt(),V2) -> a__isNatIList#(V2) p6: a__isNatIList#(V) -> a__isNatList#(V) p7: a__isNatList#(take(V1,V2)) -> 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: max/plus interpretations on natural numbers: a__isNat#_A(x1) = x1 + 28 s_A(x1) = x1 + 16 length_A(x1) = max{2, x1} a__isNatList#_A(x1) = x1 + 27 cons_A(x1,x2) = max{x1 + 4, x2 + 12} take_A(x1,x2) = max{22, x1 + 20, x2} a__U61#_A(x1,x2) = max{x1 + 9, x2 + 27} a__isNat_A(x1) = x1 + 19 tt_A = 17 a__isNatIList#_A(x1) = x1 + 27 a__U42_A(x1) = x1 U42_A(x1) = x1 a__U31_A(x1) = max{18, x1 - 18} a__U41_A(x1,x2) = max{x1 - 16, x2 + 20} a__isNatIList_A(x1) = max{19, x1 + 8} U31_A(x1) = max{18, x1 - 18} U41_A(x1,x2) = max{x1 - 16, x2 + 20} a__U52_A(x1) = max{1, x1} a__U62_A(x1) = x1 + 4 a__isNatList_A(x1) = x1 + 25 zeros_A = 18 isNatIList_A(x1) = max{0, x1 - 1} U52_A(x1) = max{0, x1 - 1} U62_A(x1) = max{2, x1 - 1} a__U51_A(x1,x2) = max{x1 + 10, x2 + 26} a__U61_A(x1,x2) = max{46, x1 + 26, x2 + 24} U51_A(x1,x2) = max{x1 + 10, x2 + 26} U61_A(x1,x2) = max{x1 + 1, x2 + 24} a__U11_A(x1) = 18 a__U21_A(x1) = x1 + 16 nil_A = 0 U11_A(x1) = 18 U21_A(x1) = x1 + 16 isNatList_A(x1) = x1 + 25 |0|_A = 16 isNat_A(x1) = x1 + 19 precedence: a__isNat# = s = length = a__isNatList# = cons = take = a__U61# = a__isNat = tt = a__isNatIList# = a__U42 = U42 = a__U31 = a__U41 = a__isNatIList = U31 = U41 = a__U52 = a__U62 = a__isNatList = zeros = isNatIList = U52 = U62 = a__U51 = a__U61 = U51 = U61 = a__U11 = a__U21 = nil = U11 = U21 = isNatList = |0| = isNat partial status: pi(a__isNat#) = [] pi(s) = [1] pi(length) = [1] pi(a__isNatList#) = [1] pi(cons) = [2] pi(take) = [2] pi(a__U61#) = [2] pi(a__isNat) = [1] pi(tt) = [] pi(a__isNatIList#) = [1] pi(a__U42) = [1] pi(U42) = [] pi(a__U31) = [] pi(a__U41) = [] pi(a__isNatIList) = [1] pi(U31) = [] pi(U41) = [] pi(a__U52) = [1] pi(a__U62) = [1] 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__isNat#(length(V1)) -> a__isNatList#(V1) p2: a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) p3: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p4: a__U61#(tt(),V2) -> a__isNatIList#(V2) p5: a__isNatIList#(V) -> a__isNatList#(V) p6: a__isNatList#(take(V1,V2)) -> 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} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: a__isNat#(length(V1)) -> a__isNatList#(V1) p2: a__isNatList#(take(V1,V2)) -> a__isNat#(V1) p3: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p4: a__U61#(tt(),V2) -> a__isNatIList#(V2) p5: a__isNatIList#(V) -> a__isNatList#(V) p6: a__isNatList#(cons(V1,V2)) -> 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: max/plus interpretations on natural numbers: a__isNat#_A(x1) = x1 + 22 length_A(x1) = x1 + 3 a__isNatList#_A(x1) = max{18, x1 + 6} take_A(x1,x2) = max{x1 + 21, x2 + 20} a__U61#_A(x1,x2) = max{x1 + 6, x2 + 26} a__isNat_A(x1) = x1 + 21 tt_A = 39 a__isNatIList#_A(x1) = x1 + 19 cons_A(x1,x2) = max{x1 + 16, x2 + 16} a__U42_A(x1) = max{13, x1 + 2} U42_A(x1) = x1 + 2 a__U31_A(x1) = max{5, x1 + 2} a__U41_A(x1,x2) = max{16, x1 - 5, x2 + 14} a__isNatIList_A(x1) = x1 + 12 U31_A(x1) = x1 + 2 U41_A(x1,x2) = max{15, x2 + 13} a__U52_A(x1) = x1 + 11 a__U62_A(x1) = x1 + 2 a__isNatList_A(x1) = x1 + 9 zeros_A = 40 isNatIList_A(x1) = x1 + 12 U52_A(x1) = x1 + 11 U62_A(x1) = x1 + 2 a__U51_A(x1,x2) = max{x1 + 2, x2 + 20} a__U61_A(x1,x2) = max{30, x1 + 9, x2 + 21} U51_A(x1,x2) = max{x1 + 1, x2} U61_A(x1,x2) = max{x1 + 9, x2 + 21} a__U11_A(x1) = max{22, x1 + 15} a__U21_A(x1) = max{38, x1 + 4} nil_A = 31 U11_A(x1) = x1 + 15 U21_A(x1) = x1 + 4 isNatList_A(x1) = x1 + 9 |0|_A = 38 s_A(x1) = x1 + 22 isNat_A(x1) = x1 + 21 precedence: a__isNat# = length = a__isNatList# > take > a__U61# = a__isNat = tt = a__isNatIList# = cons = a__U42 = U42 = a__U31 = a__U41 = a__isNatIList = U31 = U41 = a__U52 = a__U62 = a__isNatList = zeros = isNatIList = U52 = U62 = a__U51 = a__U61 = U51 = U61 = a__U11 = a__U21 = nil = U11 = U21 = isNatList = |0| = s = isNat partial status: pi(a__isNat#) = [] pi(length) = [1] pi(a__isNatList#) = [1] pi(take) = [2] pi(a__U61#) = [1, 2] pi(a__isNat) = [1] pi(tt) = [] pi(a__isNatIList#) = [1] pi(cons) = [2] pi(a__U42) = [] pi(U42) = [] pi(a__U31) = [1] pi(a__U41) = [] pi(a__isNatIList) = [1] pi(U31) = [] pi(U41) = [] pi(a__U52) = [] pi(a__U62) = [1] pi(a__isNatList) = [1] pi(zeros) = [] pi(isNatIList) = [] pi(U52) = [] pi(U62) = [] pi(a__U51) = [] pi(a__U61) = [] pi(U51) = [1, 2] pi(U61) = [] pi(a__U11) = [] pi(a__U21) = [1] pi(nil) = [] pi(U11) = [] pi(U21) = [] pi(isNatList) = [] pi(|0|) = [] pi(s) = [1] 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__isNat#(V1) p2: a__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p3: a__U61#(tt(),V2) -> a__isNatIList#(V2) p4: a__isNatIList#(V) -> a__isNatList#(V) p5: a__isNatList#(cons(V1,V2)) -> 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: {p2, p3, p4} -- Reduction pair. 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__isNatIList#(V) -> a__isNatList#(V) 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: max/plus interpretations on natural numbers: a__isNatList#_A(x1) = x1 + 4 take_A(x1,x2) = max{47, x1 + 38, x2 + 6} a__U61#_A(x1,x2) = max{x1 + 7, x2 + 5} a__isNat_A(x1) = max{39, x1 + 31} tt_A = 28 a__isNatIList#_A(x1) = x1 + 4 a__U42_A(x1) = x1 + 2 U42_A(x1) = x1 + 1 a__U31_A(x1) = x1 + 8 a__U41_A(x1,x2) = max{x1 + 7, x2 + 64} a__isNatIList_A(x1) = max{61, x1 + 58} U31_A(x1) = max{7, x1 - 1} U41_A(x1,x2) = max{6, x1 - 1, x2 - 1} a__U52_A(x1) = max{29, x1 - 13} a__U62_A(x1) = max{29, x1 - 60} a__isNatList_A(x1) = max{49, x1 - 7} zeros_A = 29 cons_A(x1,x2) = max{x1 + 47, x2 + 65} isNatIList_A(x1) = x1 + 1 U52_A(x1) = max{29, x1 - 14} U62_A(x1) = 29 a__U51_A(x1,x2) = max{x1 + 9, x2 + 58} a__U61_A(x1,x2) = max{30, x1 - 26, x2 - 1} U51_A(x1,x2) = max{x1 - 1, x2 + 58} U61_A(x1,x2) = max{0, x1 - 26, x2 - 1} a__U11_A(x1) = max{27, x1 + 8} a__U21_A(x1) = max{12, x1 + 2} nil_A = 36 U11_A(x1) = x1 + 8 U21_A(x1) = max{1, x1 - 1} isNatList_A(x1) = max{1, x1 - 8} |0|_A = 0 length_A(x1) = x1 + 26 s_A(x1) = x1 + 11 isNat_A(x1) = x1 + 31 precedence: take > a__U42 = U42 = a__U31 = U31 > a__U61# > a__isNat = tt = a__isNatIList# = a__isNatIList > a__isNatList# = U41 = a__U52 = a__U62 > a__U41 = a__isNatList = zeros = cons = isNatIList = U52 = U62 = a__U51 = a__U61 = U51 = U61 = a__U11 = a__U21 = nil = U11 = U21 = isNatList = |0| = length = s = isNat partial status: pi(a__isNatList#) = [1] pi(take) = [2] pi(a__U61#) = [1, 2] pi(a__isNat) = [] pi(tt) = [] pi(a__isNatIList#) = [] pi(a__U42) = [1] pi(U42) = [] pi(a__U31) = [1] pi(a__U41) = [] pi(a__isNatIList) = [1] pi(U31) = [] pi(U41) = [] pi(a__U52) = [] pi(a__U62) = [] pi(a__isNatList) = [] pi(zeros) = [] pi(cons) = [2] 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) = [1] pi(s) = [1] 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__isNatList#(take(V1,V2)) -> a__U61#(a__isNat(V1),V2) p2: a__isNatIList#(V) -> a__isNatList#(V) 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)