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:

  matrix interpretations:
  
    carrier: N^2
    order: lexicographic order
    interpretations:
      a__U93#_A(x1,x2,x3,x4) = ((0,0),(1,0)) x1 + x4 + (8,2)
      tt_A() = (2,0)
      mark#_A(x1) = x1 + (0,3)
      s_A(x1) = x1
      cons_A(x1,x2) = x1 + x2 + (0,10)
      take_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (11,0)
      a__take#_A(x1,x2) = x2 + (10,4)
      mark_A(x1) = ((1,0),(1,1)) x1 + (0,2)
      a__U91#_A(x1,x2,x3,x4) = x1 + x2 + x4 + (7,3)
      a__isNatIList_A(x1) = ((0,0),(1,0)) x1 + (2,3)
      a__U92#_A(x1,x2,x3,x4) = x2 + x4 + (9,2)
      a__isNat_A(x1) = (2,0)
      U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + x4 + (9,1)
      U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + ((1,0),(1,1)) x4 + (9,3)
      U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + ((1,0),(1,1)) x4 + (9,12)
      U81_A(x1) = x1 + (2,11)
      length_A(x1) = x1 + (3,2)
      a__length#_A(x1) = x1 + (2,2)
      a__U71#_A(x1,x2,x3) = ((1,0),(1,0)) x1 + x2
      a__isNatList_A(x1) = ((0,0),(1,0)) x1 + (2,0)
      a__U72#_A(x1,x2) = ((1,0),(1,0)) x1 + x2
      U72_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (1,2)
      U71_A(x1,x2,x3) = ((1,0),(1,0)) x1 + x2 + (1,1)
      U62_A(x1) = x1 + (0,1)
      U61_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,3)
      U52_A(x1) = x1
      U51_A(x1,x2) = x1
      U42_A(x1) = x1 + (0,2)
      U41_A(x1,x2) = ((1,0),(1,0)) x1 + (0,1)
      U31_A(x1) = ((1,0),(1,0)) x1 + (0,1)
      U21_A(x1) = x1
      U11_A(x1) = x1
      a__zeros_A() = (1,17)
      |0|_A() = (0,6)
      zeros_A() = (1,15)
      a__U11_A(x1) = x1
      a__U21_A(x1) = x1
      a__U31_A(x1) = ((1,0),(1,0)) x1 + (0,1)
      a__U41_A(x1,x2) = ((1,0),(1,0)) x1 + (0,1)
      a__U42_A(x1) = x1 + (0,3)
      a__U51_A(x1,x2) = x1
      a__U52_A(x1) = x1
      a__U61_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,5)
      a__U62_A(x1) = x1 + (0,1)
      a__U71_A(x1,x2,x3) = ((1,0),(1,0)) x1 + x2 + (1,4)
      a__U72_A(x1,x2) = ((1,0),(1,0)) x1 + x2 + (1,4)
      a__length_A(x1) = x1 + (3,6)
      a__U81_A(x1) = x1 + (2,12)
      nil_A() = (4,1)
      a__U91_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + ((1,0),(1,1)) x4 + (9,12)
      a__U92_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + ((1,0),(1,1)) x4 + (9,11)
      a__U93_A(x1,x2,x3,x4) = ((1,0),(1,1)) x1 + x2 + x3 + ((1,0),(1,1)) x4 + (9,10)
      a__take_A(x1,x2) = x1 + ((1,0),(1,1)) x2 + (11,8)
      isNatIList_A(x1) = ((0,0),(1,0)) x1 + (2,1)
      isNatList_A(x1) = ((0,0),(1,0)) x1 + (2,0)
      isNat_A(x1) = (2,0)

The next rules are strictly ordered:

  p1, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p21, p22, p23, p25, p26

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: a__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N)
p4: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L)
p5: a__U72#(tt(),L) -> a__length#(mark(L))
p6: mark#(U62(X)) -> mark#(X)
p7: mark#(U61(X1,X2)) -> mark#(X1)
p8: mark#(U52(X)) -> mark#(X)
p9: mark#(U51(X1,X2)) -> mark#(X1)
p10: mark#(U42(X)) -> mark#(X)
p11: mark#(U41(X1,X2)) -> mark#(X1)
p12: mark#(U31(X)) -> mark#(X)
p13: mark#(U21(X)) -> mark#(X)
p14: 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, p6, p7, p8, p9, p10, p11, p12, p13, p14}
  {p3, p4, p5}


-- Reduction pair.

Consider the dependency pair problem (P, R), where P consists of

p1: mark#(s(X)) -> mark#(X)
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#(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:

  matrix interpretations:
  
    carrier: N^2
    order: lexicographic order
    interpretations:
      mark#_A(x1) = x1
      s_A(x1) = ((1,0),(1,1)) x1 + (1,1)
      U11_A(x1) = ((1,0),(1,1)) x1 + (1,1)
      U21_A(x1) = ((1,0),(1,1)) x1 + (1,1)
      U31_A(x1) = ((1,0),(1,1)) x1 + (1,1)
      U41_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (1,1)
      U42_A(x1) = ((1,0),(1,1)) x1 + (1,1)
      U51_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,1)
      U52_A(x1) = ((1,0),(1,1)) x1 + (1,1)
      U61_A(x1,x2) = ((1,0),(1,1)) x1 + ((0,0),(1,0)) x2 + (1,1)
      U62_A(x1) = ((1,0),(1,1)) x1 + (1,1)
      cons_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (1,1)

The next rules are strictly ordered:

  p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11

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__length#(cons(N,L)) -> a__U71#(a__isNatList(L),L,N)
p2: a__U71#(tt(),L,N) -> a__U72#(a__isNat(N),L)
p3: a__U72#(tt(),L) -> a__length#(mark(L))

and R consists of:

r1: a__zeros() -> cons(|0|(),zeros())
r2: a__U11(tt()) -> tt()
r3: a__U21(tt()) -> tt()
r4: a__U31(tt()) -> tt()
r5: a__U41(tt(),V2) -> a__U42(a__isNatIList(V2))
r6: a__U42(tt()) -> tt()
r7: a__U51(tt(),V2) -> a__U52(a__isNatList(V2))
r8: a__U52(tt()) -> tt()
r9: a__U61(tt(),V2) -> a__U62(a__isNatIList(V2))
r10: a__U62(tt()) -> tt()
r11: a__U71(tt(),L,N) -> a__U72(a__isNat(N),L)
r12: a__U72(tt(),L) -> s(a__length(mark(L)))
r13: a__U81(tt()) -> nil()
r14: a__U91(tt(),IL,M,N) -> a__U92(a__isNat(M),IL,M,N)
r15: a__U92(tt(),IL,M,N) -> a__U93(a__isNat(N),IL,M,N)
r16: a__U93(tt(),IL,M,N) -> cons(mark(N),take(M,IL))
r17: a__isNat(|0|()) -> tt()
r18: a__isNat(length(V1)) -> a__U11(a__isNatList(V1))
r19: a__isNat(s(V1)) -> a__U21(a__isNat(V1))
r20: a__isNatIList(V) -> a__U31(a__isNatList(V))
r21: a__isNatIList(zeros()) -> tt()
r22: a__isNatIList(cons(V1,V2)) -> a__U41(a__isNat(V1),V2)
r23: a__isNatList(nil()) -> tt()
r24: a__isNatList(cons(V1,V2)) -> a__U51(a__isNat(V1),V2)
r25: a__isNatList(take(V1,V2)) -> a__U61(a__isNat(V1),V2)
r26: a__length(nil()) -> |0|()
r27: a__length(cons(N,L)) -> a__U71(a__isNatList(L),L,N)
r28: a__take(|0|(),IL) -> a__U81(a__isNatIList(IL))
r29: a__take(s(M),cons(N,IL)) -> a__U91(a__isNatIList(IL),IL,M,N)
r30: mark(zeros()) -> a__zeros()
r31: mark(U11(X)) -> a__U11(mark(X))
r32: mark(U21(X)) -> a__U21(mark(X))
r33: mark(U31(X)) -> a__U31(mark(X))
r34: mark(U41(X1,X2)) -> a__U41(mark(X1),X2)
r35: mark(U42(X)) -> a__U42(mark(X))
r36: mark(isNatIList(X)) -> a__isNatIList(X)
r37: mark(U51(X1,X2)) -> a__U51(mark(X1),X2)
r38: mark(U52(X)) -> a__U52(mark(X))
r39: mark(isNatList(X)) -> a__isNatList(X)
r40: mark(U61(X1,X2)) -> a__U61(mark(X1),X2)
r41: mark(U62(X)) -> a__U62(mark(X))
r42: mark(U71(X1,X2,X3)) -> a__U71(mark(X1),X2,X3)
r43: mark(U72(X1,X2)) -> a__U72(mark(X1),X2)
r44: mark(isNat(X)) -> a__isNat(X)
r45: mark(length(X)) -> a__length(mark(X))
r46: mark(U81(X)) -> a__U81(mark(X))
r47: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4)
r48: mark(U92(X1,X2,X3,X4)) -> a__U92(mark(X1),X2,X3,X4)
r49: mark(U93(X1,X2,X3,X4)) -> a__U93(mark(X1),X2,X3,X4)
r50: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
r51: mark(cons(X1,X2)) -> cons(mark(X1),X2)
r52: mark(|0|()) -> |0|()
r53: mark(tt()) -> tt()
r54: mark(s(X)) -> s(mark(X))
r55: mark(nil()) -> nil()
r56: a__zeros() -> zeros()
r57: a__U11(X) -> U11(X)
r58: a__U21(X) -> U21(X)
r59: a__U31(X) -> U31(X)
r60: a__U41(X1,X2) -> U41(X1,X2)
r61: a__U42(X) -> U42(X)
r62: a__isNatIList(X) -> isNatIList(X)
r63: a__U51(X1,X2) -> U51(X1,X2)
r64: a__U52(X) -> U52(X)
r65: a__isNatList(X) -> isNatList(X)
r66: a__U61(X1,X2) -> U61(X1,X2)
r67: a__U62(X) -> U62(X)
r68: a__U71(X1,X2,X3) -> U71(X1,X2,X3)
r69: a__U72(X1,X2) -> U72(X1,X2)
r70: a__isNat(X) -> isNat(X)
r71: a__length(X) -> length(X)
r72: a__U81(X) -> U81(X)
r73: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4)
r74: a__U92(X1,X2,X3,X4) -> U92(X1,X2,X3,X4)
r75: a__U93(X1,X2,X3,X4) -> U93(X1,X2,X3,X4)
r76: a__take(X1,X2) -> take(X1,X2)

The 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:

  matrix interpretations:
  
    carrier: N^2
    order: lexicographic order
    interpretations:
      a__length#_A(x1) = x1 + (0,2)
      cons_A(x1,x2) = ((1,0),(1,1)) x2
      a__U71#_A(x1,x2,x3) = ((0,0),(1,0)) x1 + x2
      a__isNatList_A(x1) = x1 + (1,0)
      tt_A() = (4,0)
      a__U72#_A(x1,x2) = x2 + (0,3)
      a__isNat_A(x1) = x1 + (1,0)
      mark_A(x1) = x1
      a__zeros_A() = (0,1)
      |0|_A() = (4,1)
      zeros_A() = (0,1)
      a__U11_A(x1) = x1
      a__U21_A(x1) = x1
      a__U31_A(x1) = x1 + (1,1)
      a__U41_A(x1,x2) = (6,0)
      a__U42_A(x1) = ((0,0),(1,0)) x1 + (5,1)
      a__isNatIList_A(x1) = x1 + (6,0)
      a__U51_A(x1,x2) = x2 + (1,0)
      a__U52_A(x1) = x1
      a__U61_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,8)
      a__U62_A(x1) = ((0,0),(1,0)) x1 + (4,1)
      a__U71_A(x1,x2,x3) = ((1,0),(1,1)) x2 + (0,1)
      a__U72_A(x1,x2) = ((1,0),(1,1)) x2 + (0,1)
      s_A(x1) = ((1,0),(1,1)) x1
      a__length_A(x1) = x1 + (0,1)
      a__U81_A(x1) = ((0,0),(1,0)) x1 + (4,3)
      nil_A() = (4,1)
      a__U91_A(x1,x2,x3,x4) = ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (0,8)
      a__U92_A(x1,x2,x3,x4) = ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (0,8)
      a__U93_A(x1,x2,x3,x4) = ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (0,8)
      take_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,8)
      a__take_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,8)
      U11_A(x1) = x1
      U21_A(x1) = x1
      U31_A(x1) = x1 + (1,1)
      U41_A(x1,x2) = (6,0)
      U42_A(x1) = ((0,0),(1,0)) x1 + (5,1)
      isNatIList_A(x1) = x1 + (6,0)
      U51_A(x1,x2) = x2 + (1,0)
      U52_A(x1) = x1
      U61_A(x1,x2) = x1 + ((0,0),(1,0)) x2 + (0,8)
      U62_A(x1) = ((0,0),(1,0)) x1 + (4,1)
      U71_A(x1,x2,x3) = ((1,0),(1,1)) x2 + (0,1)
      U72_A(x1,x2) = ((1,0),(1,1)) x2 + (0,1)
      length_A(x1) = x1 + (0,1)
      U81_A(x1) = ((0,0),(1,0)) x1 + (4,3)
      U91_A(x1,x2,x3,x4) = ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (0,8)
      U92_A(x1,x2,x3,x4) = ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (0,8)
      U93_A(x1,x2,x3,x4) = ((0,0),(1,0)) x2 + ((1,0),(1,1)) x3 + (0,8)
      isNatList_A(x1) = x1 + (1,0)
      isNat_A(x1) = x1 + (1,0)

The next rules are strictly ordered:

  p1, p2, p3

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:

  matrix interpretations:
  
    carrier: N^2
    order: lexicographic order
    interpretations:
      a__U41#_A(x1,x2) = x1 + ((1,0),(1,0)) x2 + (1,0)
      tt_A() = (2,6)
      a__isNatIList#_A(x1) = ((1,0),(1,0)) x1 + (2,1)
      cons_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (2,1)
      a__isNat#_A(x1) = ((1,0),(1,1)) x1 + (0,4)
      s_A(x1) = ((1,0),(1,1)) x1 + (2,1)
      length_A(x1) = ((1,0),(1,1)) x1 + (2,1)
      a__isNatList#_A(x1) = x1 + (1,0)
      take_A(x1,x2) = ((1,0),(1,1)) x1 + ((1,0),(1,1)) x2 + (3,1)
      a__U61#_A(x1,x2) = ((0,0),(1,0)) x1 + ((1,0),(1,1)) x2 + (3,0)
      a__isNat_A(x1) = ((1,0),(1,0)) x1 + (1,2)
      a__U51#_A(x1,x2) = x1 + ((1,0),(1,0)) x2
      a__U42_A(x1) = ((1,0),(1,1)) x1 + (1,4)
      U42_A(x1) = x1
      a__U31_A(x1) = x1 + (1,2)
      a__U41_A(x1,x2) = x1 + x2 + (3,1)
      a__isNatIList_A(x1) = x1 + (3,1)
      U31_A(x1) = (0,3)
      U41_A(x1,x2) = (0,2)
      a__U52_A(x1) = x1 + (1,3)
      a__U62_A(x1) = (3,7)
      a__isNatList_A(x1) = x1 + (1,1)
      zeros_A() = (1,6)
      isNatIList_A(x1) = (0,2)
      U52_A(x1) = (0,4)
      U62_A(x1) = (0,8)
      a__U51_A(x1,x2) = x1 + x2 + (1,2)
      a__U61_A(x1,x2) = x1 + (2,0)
      U51_A(x1,x2) = (0,3)
      U61_A(x1,x2) = ((0,0),(1,0)) x1 + (1,1)
      a__U11_A(x1) = x1 + (1,5)
      a__U21_A(x1) = ((1,0),(1,1)) x1 + (1,2)
      nil_A() = (2,1)
      U11_A(x1) = ((0,0),(1,0)) x1 + (0,6)
      U21_A(x1) = (0,3)
      isNatList_A(x1) = (0,0)
      |0|_A() = (2,1)
      isNat_A(x1) = (0,3)

The next rules are strictly ordered:

  p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12

We remove them from the problem.  Then no dependency pair remains.