YES

We show the termination of the TRS R:

  a__zeros() -> cons(|0|(),zeros())
  a__U11(tt(),V1) -> a__U12(a__isNatList(V1))
  a__U12(tt()) -> tt()
  a__U21(tt(),V1) -> a__U22(a__isNat(V1))
  a__U22(tt()) -> tt()
  a__U31(tt(),V) -> a__U32(a__isNatList(V))
  a__U32(tt()) -> tt()
  a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2)
  a__U42(tt(),V2) -> a__U43(a__isNatIList(V2))
  a__U43(tt()) -> tt()
  a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2)
  a__U52(tt(),V2) -> a__U53(a__isNatList(V2))
  a__U53(tt()) -> tt()
  a__U61(tt(),L) -> s(a__length(mark(L)))
  a__and(tt(),X) -> mark(X)
  a__isNat(|0|()) -> tt()
  a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1)
  a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1)
  a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V)
  a__isNatIList(zeros()) -> tt()
  a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
  a__isNatIListKind(nil()) -> tt()
  a__isNatIListKind(zeros()) -> tt()
  a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2))
  a__isNatKind(|0|()) -> tt()
  a__isNatKind(length(V1)) -> a__isNatIListKind(V1)
  a__isNatKind(s(V1)) -> a__isNatKind(V1)
  a__isNatList(nil()) -> tt()
  a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
  a__length(nil()) -> |0|()
  a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
  mark(zeros()) -> a__zeros()
  mark(U11(X1,X2)) -> a__U11(mark(X1),X2)
  mark(U12(X)) -> a__U12(mark(X))
  mark(isNatList(X)) -> a__isNatList(X)
  mark(U21(X1,X2)) -> a__U21(mark(X1),X2)
  mark(U22(X)) -> a__U22(mark(X))
  mark(isNat(X)) -> a__isNat(X)
  mark(U31(X1,X2)) -> a__U31(mark(X1),X2)
  mark(U32(X)) -> a__U32(mark(X))
  mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3)
  mark(U42(X1,X2)) -> a__U42(mark(X1),X2)
  mark(U43(X)) -> a__U43(mark(X))
  mark(isNatIList(X)) -> a__isNatIList(X)
  mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3)
  mark(U52(X1,X2)) -> a__U52(mark(X1),X2)
  mark(U53(X)) -> a__U53(mark(X))
  mark(U61(X1,X2)) -> a__U61(mark(X1),X2)
  mark(length(X)) -> a__length(mark(X))
  mark(and(X1,X2)) -> a__and(mark(X1),X2)
  mark(isNatIListKind(X)) -> a__isNatIListKind(X)
  mark(isNatKind(X)) -> a__isNatKind(X)
  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(X1,X2) -> U11(X1,X2)
  a__U12(X) -> U12(X)
  a__isNatList(X) -> isNatList(X)
  a__U21(X1,X2) -> U21(X1,X2)
  a__U22(X) -> U22(X)
  a__isNat(X) -> isNat(X)
  a__U31(X1,X2) -> U31(X1,X2)
  a__U32(X) -> U32(X)
  a__U41(X1,X2,X3) -> U41(X1,X2,X3)
  a__U42(X1,X2) -> U42(X1,X2)
  a__U43(X) -> U43(X)
  a__isNatIList(X) -> isNatIList(X)
  a__U51(X1,X2,X3) -> U51(X1,X2,X3)
  a__U52(X1,X2) -> U52(X1,X2)
  a__U53(X) -> U53(X)
  a__U61(X1,X2) -> U61(X1,X2)
  a__length(X) -> length(X)
  a__and(X1,X2) -> and(X1,X2)
  a__isNatIListKind(X) -> isNatIListKind(X)
  a__isNatKind(X) -> isNatKind(X)

-- SCC decomposition.

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

p1: a__U11#(tt(),V1) -> a__U12#(a__isNatList(V1))
p2: a__U11#(tt(),V1) -> a__isNatList#(V1)
p3: a__U21#(tt(),V1) -> a__U22#(a__isNat(V1))
p4: a__U21#(tt(),V1) -> a__isNat#(V1)
p5: a__U31#(tt(),V) -> a__U32#(a__isNatList(V))
p6: a__U31#(tt(),V) -> a__isNatList#(V)
p7: a__U41#(tt(),V1,V2) -> a__U42#(a__isNat(V1),V2)
p8: a__U41#(tt(),V1,V2) -> a__isNat#(V1)
p9: a__U42#(tt(),V2) -> a__U43#(a__isNatIList(V2))
p10: a__U42#(tt(),V2) -> a__isNatIList#(V2)
p11: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2)
p12: a__U51#(tt(),V1,V2) -> a__isNat#(V1)
p13: a__U52#(tt(),V2) -> a__U53#(a__isNatList(V2))
p14: a__U52#(tt(),V2) -> a__isNatList#(V2)
p15: a__U61#(tt(),L) -> a__length#(mark(L))
p16: a__U61#(tt(),L) -> mark#(L)
p17: a__and#(tt(),X) -> mark#(X)
p18: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1)
p19: a__isNat#(length(V1)) -> a__isNatIListKind#(V1)
p20: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1)
p21: a__isNat#(s(V1)) -> a__isNatKind#(V1)
p22: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V)
p23: a__isNatIList#(V) -> a__isNatIListKind#(V)
p24: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
p25: a__isNatIList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p26: a__isNatIList#(cons(V1,V2)) -> a__isNatKind#(V1)
p27: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p28: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1)
p29: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1)
p30: a__isNatKind#(s(V1)) -> a__isNatKind#(V1)
p31: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
p32: a__isNatList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p33: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1)
p34: a__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
p35: a__length#(cons(N,L)) -> a__and#(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N)))
p36: a__length#(cons(N,L)) -> a__and#(a__isNatList(L),isNatIListKind(L))
p37: a__length#(cons(N,L)) -> a__isNatList#(L)
p38: mark#(zeros()) -> a__zeros#()
p39: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2)
p40: mark#(U11(X1,X2)) -> mark#(X1)
p41: mark#(U12(X)) -> a__U12#(mark(X))
p42: mark#(U12(X)) -> mark#(X)
p43: mark#(isNatList(X)) -> a__isNatList#(X)
p44: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2)
p45: mark#(U21(X1,X2)) -> mark#(X1)
p46: mark#(U22(X)) -> a__U22#(mark(X))
p47: mark#(U22(X)) -> mark#(X)
p48: mark#(isNat(X)) -> a__isNat#(X)
p49: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2)
p50: mark#(U31(X1,X2)) -> mark#(X1)
p51: mark#(U32(X)) -> a__U32#(mark(X))
p52: mark#(U32(X)) -> mark#(X)
p53: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3)
p54: mark#(U41(X1,X2,X3)) -> mark#(X1)
p55: mark#(U42(X1,X2)) -> a__U42#(mark(X1),X2)
p56: mark#(U42(X1,X2)) -> mark#(X1)
p57: mark#(U43(X)) -> a__U43#(mark(X))
p58: mark#(U43(X)) -> mark#(X)
p59: mark#(isNatIList(X)) -> a__isNatIList#(X)
p60: mark#(U51(X1,X2,X3)) -> a__U51#(mark(X1),X2,X3)
p61: mark#(U51(X1,X2,X3)) -> mark#(X1)
p62: mark#(U52(X1,X2)) -> a__U52#(mark(X1),X2)
p63: mark#(U52(X1,X2)) -> mark#(X1)
p64: mark#(U53(X)) -> a__U53#(mark(X))
p65: mark#(U53(X)) -> mark#(X)
p66: mark#(U61(X1,X2)) -> a__U61#(mark(X1),X2)
p67: mark#(U61(X1,X2)) -> mark#(X1)
p68: mark#(length(X)) -> a__length#(mark(X))
p69: mark#(length(X)) -> mark#(X)
p70: mark#(and(X1,X2)) -> a__and#(mark(X1),X2)
p71: mark#(and(X1,X2)) -> mark#(X1)
p72: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X)
p73: mark#(isNatKind(X)) -> a__isNatKind#(X)
p74: mark#(cons(X1,X2)) -> mark#(X1)
p75: mark#(s(X)) -> mark#(X)

and R consists of:

r1: a__zeros() -> cons(|0|(),zeros())
r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1))
r3: a__U12(tt()) -> tt()
r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1))
r5: a__U22(tt()) -> tt()
r6: a__U31(tt(),V) -> a__U32(a__isNatList(V))
r7: a__U32(tt()) -> tt()
r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2)
r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2))
r10: a__U43(tt()) -> tt()
r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2)
r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2))
r13: a__U53(tt()) -> tt()
r14: a__U61(tt(),L) -> s(a__length(mark(L)))
r15: a__and(tt(),X) -> mark(X)
r16: a__isNat(|0|()) -> tt()
r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1)
r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1)
r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V)
r20: a__isNatIList(zeros()) -> tt()
r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r22: a__isNatIListKind(nil()) -> tt()
r23: a__isNatIListKind(zeros()) -> tt()
r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2))
r25: a__isNatKind(|0|()) -> tt()
r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1)
r27: a__isNatKind(s(V1)) -> a__isNatKind(V1)
r28: a__isNatList(nil()) -> tt()
r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r30: a__length(nil()) -> |0|()
r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
r32: mark(zeros()) -> a__zeros()
r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2)
r34: mark(U12(X)) -> a__U12(mark(X))
r35: mark(isNatList(X)) -> a__isNatList(X)
r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2)
r37: mark(U22(X)) -> a__U22(mark(X))
r38: mark(isNat(X)) -> a__isNat(X)
r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2)
r40: mark(U32(X)) -> a__U32(mark(X))
r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3)
r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2)
r43: mark(U43(X)) -> a__U43(mark(X))
r44: mark(isNatIList(X)) -> a__isNatIList(X)
r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3)
r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2)
r47: mark(U53(X)) -> a__U53(mark(X))
r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2)
r49: mark(length(X)) -> a__length(mark(X))
r50: mark(and(X1,X2)) -> a__and(mark(X1),X2)
r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X)
r52: mark(isNatKind(X)) -> a__isNatKind(X)
r53: mark(cons(X1,X2)) -> cons(mark(X1),X2)
r54: mark(|0|()) -> |0|()
r55: mark(tt()) -> tt()
r56: mark(s(X)) -> s(mark(X))
r57: mark(nil()) -> nil()
r58: a__zeros() -> zeros()
r59: a__U11(X1,X2) -> U11(X1,X2)
r60: a__U12(X) -> U12(X)
r61: a__isNatList(X) -> isNatList(X)
r62: a__U21(X1,X2) -> U21(X1,X2)
r63: a__U22(X) -> U22(X)
r64: a__isNat(X) -> isNat(X)
r65: a__U31(X1,X2) -> U31(X1,X2)
r66: a__U32(X) -> U32(X)
r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3)
r68: a__U42(X1,X2) -> U42(X1,X2)
r69: a__U43(X) -> U43(X)
r70: a__isNatIList(X) -> isNatIList(X)
r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3)
r72: a__U52(X1,X2) -> U52(X1,X2)
r73: a__U53(X) -> U53(X)
r74: a__U61(X1,X2) -> U61(X1,X2)
r75: a__length(X) -> length(X)
r76: a__and(X1,X2) -> and(X1,X2)
r77: a__isNatIListKind(X) -> isNatIListKind(X)
r78: a__isNatKind(X) -> isNatKind(X)

The estimated dependency graph contains the following SCCs:

  {p2, p4, p6, p7, p8, p10, p11, p12, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p39, p40, p42, p43, p44, p45, p47, p48, p49, p50, p52, p53, p54, p55, p56, p58, p59, p60, p61, p62, p63, p65, p66, p67, p68, p69, p70, p71, p72, p73, p74, p75}


-- Reduction pair.

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

p1: a__U11#(tt(),V1) -> a__isNatList#(V1)
p2: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1)
p3: a__isNatKind#(s(V1)) -> a__isNatKind#(V1)
p4: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1)
p5: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1)
p6: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p7: a__and#(tt(),X) -> mark#(X)
p8: mark#(s(X)) -> mark#(X)
p9: mark#(cons(X1,X2)) -> mark#(X1)
p10: mark#(isNatKind(X)) -> a__isNatKind#(X)
p11: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X)
p12: mark#(and(X1,X2)) -> mark#(X1)
p13: mark#(and(X1,X2)) -> a__and#(mark(X1),X2)
p14: mark#(length(X)) -> mark#(X)
p15: mark#(length(X)) -> a__length#(mark(X))
p16: a__length#(cons(N,L)) -> a__isNatList#(L)
p17: a__isNatList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p18: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
p19: a__U51#(tt(),V1,V2) -> a__isNat#(V1)
p20: a__isNat#(s(V1)) -> a__isNatKind#(V1)
p21: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1)
p22: a__U21#(tt(),V1) -> a__isNat#(V1)
p23: a__isNat#(length(V1)) -> a__isNatIListKind#(V1)
p24: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1)
p25: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2)
p26: a__U52#(tt(),V2) -> a__isNatList#(V2)
p27: a__length#(cons(N,L)) -> a__and#(a__isNatList(L),isNatIListKind(L))
p28: a__length#(cons(N,L)) -> a__and#(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N)))
p29: a__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
p30: a__U61#(tt(),L) -> mark#(L)
p31: mark#(U61(X1,X2)) -> mark#(X1)
p32: mark#(U61(X1,X2)) -> a__U61#(mark(X1),X2)
p33: a__U61#(tt(),L) -> a__length#(mark(L))
p34: mark#(U53(X)) -> mark#(X)
p35: mark#(U52(X1,X2)) -> mark#(X1)
p36: mark#(U52(X1,X2)) -> a__U52#(mark(X1),X2)
p37: mark#(U51(X1,X2,X3)) -> mark#(X1)
p38: mark#(U51(X1,X2,X3)) -> a__U51#(mark(X1),X2,X3)
p39: mark#(isNatIList(X)) -> a__isNatIList#(X)
p40: a__isNatIList#(cons(V1,V2)) -> a__isNatKind#(V1)
p41: a__isNatIList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p42: a__isNatIList#(cons(V1,V2)) -> a__U41#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
p43: a__U41#(tt(),V1,V2) -> a__isNat#(V1)
p44: a__U41#(tt(),V1,V2) -> a__U42#(a__isNat(V1),V2)
p45: a__U42#(tt(),V2) -> a__isNatIList#(V2)
p46: a__isNatIList#(V) -> a__isNatIListKind#(V)
p47: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V)
p48: a__U31#(tt(),V) -> a__isNatList#(V)
p49: mark#(U43(X)) -> mark#(X)
p50: mark#(U42(X1,X2)) -> mark#(X1)
p51: mark#(U42(X1,X2)) -> a__U42#(mark(X1),X2)
p52: mark#(U41(X1,X2,X3)) -> mark#(X1)
p53: mark#(U41(X1,X2,X3)) -> a__U41#(mark(X1),X2,X3)
p54: mark#(U32(X)) -> mark#(X)
p55: mark#(U31(X1,X2)) -> mark#(X1)
p56: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2)
p57: mark#(isNat(X)) -> a__isNat#(X)
p58: mark#(U22(X)) -> mark#(X)
p59: mark#(U21(X1,X2)) -> mark#(X1)
p60: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2)
p61: mark#(isNatList(X)) -> a__isNatList#(X)
p62: mark#(U12(X)) -> mark#(X)
p63: mark#(U11(X1,X2)) -> mark#(X1)
p64: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2)

and R consists of:

r1: a__zeros() -> cons(|0|(),zeros())
r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1))
r3: a__U12(tt()) -> tt()
r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1))
r5: a__U22(tt()) -> tt()
r6: a__U31(tt(),V) -> a__U32(a__isNatList(V))
r7: a__U32(tt()) -> tt()
r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2)
r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2))
r10: a__U43(tt()) -> tt()
r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2)
r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2))
r13: a__U53(tt()) -> tt()
r14: a__U61(tt(),L) -> s(a__length(mark(L)))
r15: a__and(tt(),X) -> mark(X)
r16: a__isNat(|0|()) -> tt()
r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1)
r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1)
r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V)
r20: a__isNatIList(zeros()) -> tt()
r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r22: a__isNatIListKind(nil()) -> tt()
r23: a__isNatIListKind(zeros()) -> tt()
r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2))
r25: a__isNatKind(|0|()) -> tt()
r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1)
r27: a__isNatKind(s(V1)) -> a__isNatKind(V1)
r28: a__isNatList(nil()) -> tt()
r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r30: a__length(nil()) -> |0|()
r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
r32: mark(zeros()) -> a__zeros()
r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2)
r34: mark(U12(X)) -> a__U12(mark(X))
r35: mark(isNatList(X)) -> a__isNatList(X)
r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2)
r37: mark(U22(X)) -> a__U22(mark(X))
r38: mark(isNat(X)) -> a__isNat(X)
r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2)
r40: mark(U32(X)) -> a__U32(mark(X))
r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3)
r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2)
r43: mark(U43(X)) -> a__U43(mark(X))
r44: mark(isNatIList(X)) -> a__isNatIList(X)
r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3)
r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2)
r47: mark(U53(X)) -> a__U53(mark(X))
r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2)
r49: mark(length(X)) -> a__length(mark(X))
r50: mark(and(X1,X2)) -> a__and(mark(X1),X2)
r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X)
r52: mark(isNatKind(X)) -> a__isNatKind(X)
r53: mark(cons(X1,X2)) -> cons(mark(X1),X2)
r54: mark(|0|()) -> |0|()
r55: mark(tt()) -> tt()
r56: mark(s(X)) -> s(mark(X))
r57: mark(nil()) -> nil()
r58: a__zeros() -> zeros()
r59: a__U11(X1,X2) -> U11(X1,X2)
r60: a__U12(X) -> U12(X)
r61: a__isNatList(X) -> isNatList(X)
r62: a__U21(X1,X2) -> U21(X1,X2)
r63: a__U22(X) -> U22(X)
r64: a__isNat(X) -> isNat(X)
r65: a__U31(X1,X2) -> U31(X1,X2)
r66: a__U32(X) -> U32(X)
r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3)
r68: a__U42(X1,X2) -> U42(X1,X2)
r69: a__U43(X) -> U43(X)
r70: a__isNatIList(X) -> isNatIList(X)
r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3)
r72: a__U52(X1,X2) -> U52(X1,X2)
r73: a__U53(X) -> U53(X)
r74: a__U61(X1,X2) -> U61(X1,X2)
r75: a__length(X) -> length(X)
r76: a__and(X1,X2) -> and(X1,X2)
r77: a__isNatIListKind(X) -> isNatIListKind(X)
r78: a__isNatKind(X) -> isNatKind(X)

The set of usable rules consists of

  r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, 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, r77, r78

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^4
    order: lexicographic order
    interpretations:
      a__U11#_A(x1,x2) = (6,1,8,1)
      tt_A() = (7,8,5,7)
      a__isNatList#_A(x1) = (6,1,8,1)
      cons_A(x1,x2) = ((1,0,0,0),(0,0,0,0),(1,0,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(0,0,0,0),(0,1,0,0),(0,0,0,0)) x2 + (7,17,1,12)
      a__isNatKind#_A(x1) = (6,1,8,1)
      s_A(x1) = x1 + (0,13,2,1)
      length_A(x1) = x1 + (2,0,9,1)
      a__isNatIListKind#_A(x1) = (6,1,8,1)
      a__and#_A(x1,x2) = x2 + (6,1,8,1)
      a__isNatKind_A(x1) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + (7,9,4,2)
      isNatIListKind_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(1,0,0,0)) x1 + (0,1,0,1)
      mark#_A(x1) = x1 + (6,1,8,1)
      isNatKind_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(0,1,0,0)) x1 + (0,10,0,0)
      and_A(x1,x2) = x1 + ((1,0,0,0),(1,1,0,0),(0,0,0,0),(0,0,0,0)) x2 + (0,4,0,0)
      mark_A(x1) = ((1,0,0,0),(1,1,0,0),(0,0,1,0),(0,0,0,0)) x1 + (7,11,4,19)
      a__length#_A(x1) = x1 + (0,0,7,0)
      a__U51#_A(x1,x2,x3) = (6,1,8,1)
      a__and_A(x1,x2) = x1 + ((1,0,0,0),(1,1,0,0),(0,0,0,0),(0,0,0,0)) x2 + (0,4,0,19)
      a__isNat#_A(x1) = (6,1,8,1)
      a__U21#_A(x1,x2) = (6,1,8,1)
      a__isNatIListKind_A(x1) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(0,1,0,0)) x1 + (7,10,5,2)
      a__U52#_A(x1,x2) = (6,1,8,1)
      a__isNat_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(1,0,1,0)) x1 + (7,10,7,0)
      a__isNatList_A(x1) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(1,1,0,0)) x1 + (7,7,0,0)
      isNat_A(x1) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,1,0,0)
      a__U61#_A(x1,x2) = x1 + x2 + (0,0,7,0)
      U61_A(x1,x2) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x2 + (2,0,1,0)
      U53_A(x1) = x1 + (0,4,0,1)
      U52_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + (0,4,0,0)
      U51_A(x1,x2,x3) = x1 + (0,4,0,1)
      isNatIList_A(x1) = ((1,0,0,0),(1,1,0,0),(0,0,0,0),(1,1,1,0)) x1 + (1,1,3,0)
      a__isNatIList#_A(x1) = x1 + (6,1,8,1)
      a__U41#_A(x1,x2,x3) = ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x1 + ((0,0,0,0),(0,0,0,0),(1,0,0,0),(1,1,0,0)) x2 + ((1,0,0,0),(0,1,0,0),(0,0,1,0),(1,1,1,1)) x3 + (7,0,0,2)
      a__U42#_A(x1,x2) = x2 + (6,1,8,1)
      a__U31#_A(x1,x2) = x2 + (6,1,8,1)
      U43_A(x1) = x1 + (0,9,0,0)
      U42_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(1,1,0,0),(0,0,0,0),(0,1,1,0)) x2
      U41_A(x1,x2,x3) = ((1,0,0,0),(0,0,0,0),(1,1,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x2 + ((1,0,0,0),(0,1,0,0),(0,0,0,0),(1,1,1,0)) x3 + (6,0,1,0)
      U32_A(x1) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,1,3,0)
      U31_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(0,0,0,0),(1,0,0,0)) x1 + x2 + (0,3,0,0)
      U22_A(x1) = ((1,0,0,0),(0,0,0,0),(1,0,0,0),(1,0,0,0)) x1 + (0,1,1,13)
      U21_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,1,0,0)
      isNatList_A(x1) = ((0,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (1,1,1,0)
      U12_A(x1) = x1 + (0,8,0,0)
      U11_A(x1,x2) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,5,6,0)
      a__zeros_A() = (8,17,7,12)
      |0|_A() = (0,0,7,0)
      zeros_A() = (1,5,6,0)
      a__U11_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,5,6,12)
      a__U12_A(x1) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,8,5,0)
      a__U21_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,1,3,14)
      a__U22_A(x1) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,9,2,13)
      a__U31_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(0,0,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(0,1,0,0),(0,0,0,0),(0,0,1,0)) x2 + (0,3,3,13)
      a__U32_A(x1) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + (0,1,6,21)
      a__U41_A(x1,x2,x3) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(1,1,0,0)) x1 + ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x2 + x3 + (6,10,2,7)
      a__U42_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(1,1,0,0),(0,0,0,0),(0,0,1,0)) x2 + (0,3,1,21)
      a__U43_A(x1) = x1 + (0,9,6,20)
      a__isNatIList_A(x1) = ((1,0,0,0),(1,1,0,0),(0,0,0,0),(0,0,0,0)) x1 + (7,13,6,18)
      a__U51_A(x1,x2,x3) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,1,0,0)) x1 + (0,7,0,9)
      a__U52_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + (0,7,0,9)
      a__U53_A(x1) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + (0,7,0,8)
      a__U61_A(x1,x2) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(0,1,0,0)) x1 + x2 + (2,13,2,9)
      a__length_A(x1) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (2,13,8,32)
      nil_A() = (2,5,1,1)

The next rules are strictly ordered:

  p9, p14, p15, p16, p27, p28, p30, p31, p32, p39, p40, p41, p42, p43, p44, p52, p53, p61

We remove them from the problem.

-- SCC decomposition.

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

p1: a__U11#(tt(),V1) -> a__isNatList#(V1)
p2: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1)
p3: a__isNatKind#(s(V1)) -> a__isNatKind#(V1)
p4: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1)
p5: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1)
p6: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p7: a__and#(tt(),X) -> mark#(X)
p8: mark#(s(X)) -> mark#(X)
p9: mark#(isNatKind(X)) -> a__isNatKind#(X)
p10: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X)
p11: mark#(and(X1,X2)) -> mark#(X1)
p12: mark#(and(X1,X2)) -> a__and#(mark(X1),X2)
p13: a__isNatList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p14: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
p15: a__U51#(tt(),V1,V2) -> a__isNat#(V1)
p16: a__isNat#(s(V1)) -> a__isNatKind#(V1)
p17: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1)
p18: a__U21#(tt(),V1) -> a__isNat#(V1)
p19: a__isNat#(length(V1)) -> a__isNatIListKind#(V1)
p20: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1)
p21: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2)
p22: a__U52#(tt(),V2) -> a__isNatList#(V2)
p23: a__length#(cons(N,L)) -> a__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
p24: a__U61#(tt(),L) -> a__length#(mark(L))
p25: mark#(U53(X)) -> mark#(X)
p26: mark#(U52(X1,X2)) -> mark#(X1)
p27: mark#(U52(X1,X2)) -> a__U52#(mark(X1),X2)
p28: mark#(U51(X1,X2,X3)) -> mark#(X1)
p29: mark#(U51(X1,X2,X3)) -> a__U51#(mark(X1),X2,X3)
p30: a__U42#(tt(),V2) -> a__isNatIList#(V2)
p31: a__isNatIList#(V) -> a__isNatIListKind#(V)
p32: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V)
p33: a__U31#(tt(),V) -> a__isNatList#(V)
p34: mark#(U43(X)) -> mark#(X)
p35: mark#(U42(X1,X2)) -> mark#(X1)
p36: mark#(U42(X1,X2)) -> a__U42#(mark(X1),X2)
p37: mark#(U32(X)) -> mark#(X)
p38: mark#(U31(X1,X2)) -> mark#(X1)
p39: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2)
p40: mark#(isNat(X)) -> a__isNat#(X)
p41: mark#(U22(X)) -> mark#(X)
p42: mark#(U21(X1,X2)) -> mark#(X1)
p43: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2)
p44: mark#(U12(X)) -> mark#(X)
p45: mark#(U11(X1,X2)) -> mark#(X1)
p46: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2)

and R consists of:

r1: a__zeros() -> cons(|0|(),zeros())
r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1))
r3: a__U12(tt()) -> tt()
r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1))
r5: a__U22(tt()) -> tt()
r6: a__U31(tt(),V) -> a__U32(a__isNatList(V))
r7: a__U32(tt()) -> tt()
r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2)
r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2))
r10: a__U43(tt()) -> tt()
r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2)
r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2))
r13: a__U53(tt()) -> tt()
r14: a__U61(tt(),L) -> s(a__length(mark(L)))
r15: a__and(tt(),X) -> mark(X)
r16: a__isNat(|0|()) -> tt()
r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1)
r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1)
r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V)
r20: a__isNatIList(zeros()) -> tt()
r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r22: a__isNatIListKind(nil()) -> tt()
r23: a__isNatIListKind(zeros()) -> tt()
r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2))
r25: a__isNatKind(|0|()) -> tt()
r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1)
r27: a__isNatKind(s(V1)) -> a__isNatKind(V1)
r28: a__isNatList(nil()) -> tt()
r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r30: a__length(nil()) -> |0|()
r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
r32: mark(zeros()) -> a__zeros()
r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2)
r34: mark(U12(X)) -> a__U12(mark(X))
r35: mark(isNatList(X)) -> a__isNatList(X)
r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2)
r37: mark(U22(X)) -> a__U22(mark(X))
r38: mark(isNat(X)) -> a__isNat(X)
r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2)
r40: mark(U32(X)) -> a__U32(mark(X))
r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3)
r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2)
r43: mark(U43(X)) -> a__U43(mark(X))
r44: mark(isNatIList(X)) -> a__isNatIList(X)
r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3)
r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2)
r47: mark(U53(X)) -> a__U53(mark(X))
r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2)
r49: mark(length(X)) -> a__length(mark(X))
r50: mark(and(X1,X2)) -> a__and(mark(X1),X2)
r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X)
r52: mark(isNatKind(X)) -> a__isNatKind(X)
r53: mark(cons(X1,X2)) -> cons(mark(X1),X2)
r54: mark(|0|()) -> |0|()
r55: mark(tt()) -> tt()
r56: mark(s(X)) -> s(mark(X))
r57: mark(nil()) -> nil()
r58: a__zeros() -> zeros()
r59: a__U11(X1,X2) -> U11(X1,X2)
r60: a__U12(X) -> U12(X)
r61: a__isNatList(X) -> isNatList(X)
r62: a__U21(X1,X2) -> U21(X1,X2)
r63: a__U22(X) -> U22(X)
r64: a__isNat(X) -> isNat(X)
r65: a__U31(X1,X2) -> U31(X1,X2)
r66: a__U32(X) -> U32(X)
r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3)
r68: a__U42(X1,X2) -> U42(X1,X2)
r69: a__U43(X) -> U43(X)
r70: a__isNatIList(X) -> isNatIList(X)
r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3)
r72: a__U52(X1,X2) -> U52(X1,X2)
r73: a__U53(X) -> U53(X)
r74: a__U61(X1,X2) -> U61(X1,X2)
r75: a__length(X) -> length(X)
r76: a__and(X1,X2) -> and(X1,X2)
r77: a__isNatIListKind(X) -> isNatIListKind(X)
r78: a__isNatKind(X) -> isNatKind(X)

The estimated dependency graph contains the following SCCs:

  {p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44, p45, p46}
  {p23, p24}


-- Reduction pair.

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

p1: a__U11#(tt(),V1) -> a__isNatList#(V1)
p2: a__isNatList#(cons(V1,V2)) -> a__U51#(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
p3: a__U51#(tt(),V1,V2) -> a__U52#(a__isNat(V1),V2)
p4: a__U52#(tt(),V2) -> a__isNatList#(V2)
p5: a__isNatList#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p6: a__and#(tt(),X) -> mark#(X)
p7: mark#(U11(X1,X2)) -> a__U11#(mark(X1),X2)
p8: mark#(U11(X1,X2)) -> mark#(X1)
p9: mark#(U12(X)) -> mark#(X)
p10: mark#(U21(X1,X2)) -> a__U21#(mark(X1),X2)
p11: a__U21#(tt(),V1) -> a__isNat#(V1)
p12: a__isNat#(length(V1)) -> a__U11#(a__isNatIListKind(V1),V1)
p13: a__isNat#(length(V1)) -> a__isNatIListKind#(V1)
p14: a__isNatIListKind#(cons(V1,V2)) -> a__and#(a__isNatKind(V1),isNatIListKind(V2))
p15: a__isNatIListKind#(cons(V1,V2)) -> a__isNatKind#(V1)
p16: a__isNatKind#(length(V1)) -> a__isNatIListKind#(V1)
p17: a__isNatKind#(s(V1)) -> a__isNatKind#(V1)
p18: a__isNat#(s(V1)) -> a__U21#(a__isNatKind(V1),V1)
p19: a__isNat#(s(V1)) -> a__isNatKind#(V1)
p20: mark#(U21(X1,X2)) -> mark#(X1)
p21: mark#(U22(X)) -> mark#(X)
p22: mark#(isNat(X)) -> a__isNat#(X)
p23: mark#(U31(X1,X2)) -> a__U31#(mark(X1),X2)
p24: a__U31#(tt(),V) -> a__isNatList#(V)
p25: a__isNatList#(cons(V1,V2)) -> a__isNatKind#(V1)
p26: mark#(U31(X1,X2)) -> mark#(X1)
p27: mark#(U32(X)) -> mark#(X)
p28: mark#(U42(X1,X2)) -> a__U42#(mark(X1),X2)
p29: a__U42#(tt(),V2) -> a__isNatIList#(V2)
p30: a__isNatIList#(V) -> a__U31#(a__isNatIListKind(V),V)
p31: a__isNatIList#(V) -> a__isNatIListKind#(V)
p32: mark#(U42(X1,X2)) -> mark#(X1)
p33: mark#(U43(X)) -> mark#(X)
p34: mark#(U51(X1,X2,X3)) -> a__U51#(mark(X1),X2,X3)
p35: a__U51#(tt(),V1,V2) -> a__isNat#(V1)
p36: mark#(U51(X1,X2,X3)) -> mark#(X1)
p37: mark#(U52(X1,X2)) -> a__U52#(mark(X1),X2)
p38: mark#(U52(X1,X2)) -> mark#(X1)
p39: mark#(U53(X)) -> mark#(X)
p40: mark#(and(X1,X2)) -> a__and#(mark(X1),X2)
p41: mark#(and(X1,X2)) -> mark#(X1)
p42: mark#(isNatIListKind(X)) -> a__isNatIListKind#(X)
p43: mark#(isNatKind(X)) -> a__isNatKind#(X)
p44: mark#(s(X)) -> mark#(X)

and R consists of:

r1: a__zeros() -> cons(|0|(),zeros())
r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1))
r3: a__U12(tt()) -> tt()
r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1))
r5: a__U22(tt()) -> tt()
r6: a__U31(tt(),V) -> a__U32(a__isNatList(V))
r7: a__U32(tt()) -> tt()
r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2)
r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2))
r10: a__U43(tt()) -> tt()
r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2)
r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2))
r13: a__U53(tt()) -> tt()
r14: a__U61(tt(),L) -> s(a__length(mark(L)))
r15: a__and(tt(),X) -> mark(X)
r16: a__isNat(|0|()) -> tt()
r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1)
r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1)
r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V)
r20: a__isNatIList(zeros()) -> tt()
r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r22: a__isNatIListKind(nil()) -> tt()
r23: a__isNatIListKind(zeros()) -> tt()
r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2))
r25: a__isNatKind(|0|()) -> tt()
r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1)
r27: a__isNatKind(s(V1)) -> a__isNatKind(V1)
r28: a__isNatList(nil()) -> tt()
r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r30: a__length(nil()) -> |0|()
r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
r32: mark(zeros()) -> a__zeros()
r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2)
r34: mark(U12(X)) -> a__U12(mark(X))
r35: mark(isNatList(X)) -> a__isNatList(X)
r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2)
r37: mark(U22(X)) -> a__U22(mark(X))
r38: mark(isNat(X)) -> a__isNat(X)
r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2)
r40: mark(U32(X)) -> a__U32(mark(X))
r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3)
r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2)
r43: mark(U43(X)) -> a__U43(mark(X))
r44: mark(isNatIList(X)) -> a__isNatIList(X)
r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3)
r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2)
r47: mark(U53(X)) -> a__U53(mark(X))
r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2)
r49: mark(length(X)) -> a__length(mark(X))
r50: mark(and(X1,X2)) -> a__and(mark(X1),X2)
r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X)
r52: mark(isNatKind(X)) -> a__isNatKind(X)
r53: mark(cons(X1,X2)) -> cons(mark(X1),X2)
r54: mark(|0|()) -> |0|()
r55: mark(tt()) -> tt()
r56: mark(s(X)) -> s(mark(X))
r57: mark(nil()) -> nil()
r58: a__zeros() -> zeros()
r59: a__U11(X1,X2) -> U11(X1,X2)
r60: a__U12(X) -> U12(X)
r61: a__isNatList(X) -> isNatList(X)
r62: a__U21(X1,X2) -> U21(X1,X2)
r63: a__U22(X) -> U22(X)
r64: a__isNat(X) -> isNat(X)
r65: a__U31(X1,X2) -> U31(X1,X2)
r66: a__U32(X) -> U32(X)
r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3)
r68: a__U42(X1,X2) -> U42(X1,X2)
r69: a__U43(X) -> U43(X)
r70: a__isNatIList(X) -> isNatIList(X)
r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3)
r72: a__U52(X1,X2) -> U52(X1,X2)
r73: a__U53(X) -> U53(X)
r74: a__U61(X1,X2) -> U61(X1,X2)
r75: a__length(X) -> length(X)
r76: a__and(X1,X2) -> and(X1,X2)
r77: a__isNatIListKind(X) -> isNatIListKind(X)
r78: a__isNatKind(X) -> isNatKind(X)

The set of usable rules consists of

  r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, 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, r77, r78

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^4
    order: lexicographic order
    interpretations:
      a__U11#_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(0,1,1,0),(0,1,1,1)) x1 + ((1,0,0,0),(1,1,0,0),(0,0,0,0),(0,0,1,0)) x2 + (0,15,91,91)
      tt_A() = (15,0,175,175)
      a__isNatList#_A(x1) = ((1,0,0,0),(1,1,0,0),(1,1,1,0),(1,1,1,1)) x1 + (3,14,267,446)
      cons_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,1,0,0),(0,1,0,0)) x1 + ((1,0,0,0),(1,1,0,0),(1,0,0,0),(1,0,0,0)) x2 + (15,14,208,1)
      a__U51#_A(x1,x2,x3) = ((1,0,0,0),(0,1,0,0),(0,1,1,0),(1,1,1,1)) x1 + ((1,0,0,0),(0,0,0,0),(0,1,0,0),(0,0,1,0)) x2 + ((1,0,0,0),(0,1,0,0),(0,0,0,0),(1,1,1,0)) x3 + (2,18,260,108)
      a__and_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(1,1,0,0),(0,0,1,0)) x1 + ((1,0,0,0),(1,1,0,0),(0,1,0,0),(0,1,1,0)) x2 + (0,17,197,0)
      a__isNatKind_A(x1) = ((0,0,0,0),(1,0,0,0),(1,0,0,0),(0,1,0,0)) x1 + (15,5,313,173)
      isNatIListKind_A(x1) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(0,0,1,0)) x1 + (0,2,335,6)
      a__U52#_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(0,1,1,0)) x1 + ((1,0,0,0),(1,1,0,0),(1,1,1,0),(0,0,0,0)) x2 + (4,0,253,0)
      a__isNat_A(x1) = ((1,0,0,0),(0,1,0,0),(0,0,0,0),(0,1,0,0)) x1 + (17,164,308,175)
      a__and#_A(x1,x2) = ((1,0,0,0),(1,1,0,0),(1,0,1,0),(1,1,1,1)) x1 + ((1,0,0,0),(1,1,0,0),(0,0,1,0),(0,1,1,1)) x2 + (0,20,0,0)
      mark#_A(x1) = ((1,0,0,0),(1,1,0,0),(1,1,1,0),(1,1,1,1)) x1 + (15,34,191,366)
      U11_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(1,0,1,0),(1,0,1,1)) x1 + ((1,0,0,0),(1,1,0,0),(1,1,1,0),(1,0,1,0)) x2 + (21,103,1,1)
      mark_A(x1) = ((1,0,0,0),(0,1,0,0),(1,0,1,0),(0,1,0,0)) x1 + (15,15,211,176)
      U12_A(x1) = ((1,0,0,0),(0,1,0,0),(1,1,1,0),(1,0,0,1)) x1 + (31,1,1,1)
      U21_A(x1,x2) = ((1,0,0,0),(0,0,0,0),(1,1,0,0),(1,0,1,0)) x1 + ((1,0,0,0),(0,1,0,0),(0,1,1,0),(0,0,0,0)) x2 + (2,151,174,176)
      a__U21#_A(x1,x2) = ((1,0,0,0),(0,0,0,0),(0,1,0,0),(0,0,1,0)) x1 + ((1,0,0,0),(1,1,0,0),(1,1,1,0),(0,0,1,0)) x2 + (1,18,502,508)
      a__isNat#_A(x1) = ((1,0,0,0),(1,1,0,0),(1,1,1,0),(1,1,1,1)) x1 + (16,17,501,684)
      length_A(x1) = ((1,0,0,0),(0,1,0,0),(1,0,1,0),(1,1,1,0)) x1 + (20,1,1,1)
      a__isNatIListKind_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(1,1,0,0)) x1 + (15,16,174,425)
      a__isNatIListKind#_A(x1) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(1,1,1,0)) x1 + (15,28,527,708)
      a__isNatKind#_A(x1) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(1,1,1,0)) x1 + (15,9,505,685)
      s_A(x1) = x1 + (0,3,2,1)
      U22_A(x1) = ((1,0,0,0),(0,1,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,1,1,176)
      isNat_A(x1) = ((1,0,0,0),(1,1,0,0),(1,1,1,0),(1,0,0,1)) x1 + (3,1,307,1)
      U31_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(1,1,1,0),(1,0,0,1)) x1 + ((1,0,0,0),(1,1,0,0),(1,0,0,0),(1,1,0,0)) x2 + (32,37,41,22)
      a__U31#_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(0,0,1,0),(0,1,1,1)) x1 + ((1,0,0,0),(0,1,0,0),(0,0,0,0),(0,0,1,0)) x2 + (0,15,91,95)
      U32_A(x1) = ((1,0,0,0),(0,1,0,0),(1,0,1,0),(1,1,1,1)) x1 + (17,28,1,1)
      U42_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(1,1,1,0),(1,0,1,1)) x1 + ((1,0,0,0),(1,1,0,0),(0,1,0,0),(0,0,0,0)) x2 + (36,33,1,19)
      a__U42#_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(0,1,1,0),(1,1,1,1)) x1 + ((1,0,0,0),(1,1,0,0),(0,0,0,0),(1,1,1,0)) x2 + (2,33,36,39)
      a__isNatIList#_A(x1) = ((1,0,0,0),(1,1,0,0),(1,1,1,0),(1,1,1,0)) x1 + (16,32,528,709)
      U43_A(x1) = ((1,0,0,0),(0,1,0,0),(0,0,1,0),(1,1,0,1)) x1 + (2,32,1,1)
      U51_A(x1,x2,x3) = ((1,0,0,0),(0,1,0,0),(1,0,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(1,0,0,0),(1,0,0,0),(0,1,0,0)) x2 + ((1,0,0,0),(1,1,0,0),(1,0,0,0),(0,1,0,0)) x3 + (4,19,271,196)
      U52_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(1,0,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(1,0,0,0),(1,0,0,0),(0,0,0,0)) x2 + (1,2,90,1)
      U53_A(x1) = ((1,0,0,0),(0,0,0,0),(1,0,0,0),(1,0,0,0)) x1 + (11,1,162,1)
      and_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(1,1,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(1,1,0,0),(0,1,0,0),(1,0,0,0)) x2 + (0,17,17,1)
      isNatKind_A(x1) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(1,0,1,0)) x1 + (1,1,313,174)
      a__zeros_A() = (16,17,211,4)
      |0|_A() = (0,1,0,169)
      zeros_A() = (1,2,0,0)
      a__U11_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(1,0,1,0),(0,0,0,0)) x1 + ((1,0,0,0),(1,1,0,0),(1,1,1,0),(0,1,0,1)) x2 + (21,103,6,278)
      a__U12_A(x1) = ((1,0,0,0),(0,1,0,0),(1,1,1,0),(1,1,1,1)) x1 + (31,1,1,2)
      a__isNatList_A(x1) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (5,10,176,0)
      a__U21_A(x1,x2) = x1 + x2 + (2,166,175,177)
      a__U22_A(x1) = x1 + (0,1,175,176)
      a__U31_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(1,1,1,0),(1,0,0,1)) x1 + ((1,0,0,0),(1,1,0,0),(1,0,0,0),(0,0,0,0)) x2 + (32,37,42,22)
      a__U32_A(x1) = ((1,0,0,0),(0,1,0,0),(1,0,1,0),(0,1,0,1)) x1 + (17,28,2,2)
      a__U41_A(x1,x2,x3) = ((1,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(0,0,0,0),(1,1,0,0),(1,1,0,0)) x2 + ((1,0,0,0),(0,0,0,0),(1,1,0,0),(1,0,1,0)) x3 + (39,198,1,361)
      a__U42_A(x1,x2) = ((1,0,0,0),(0,1,0,0),(1,1,1,0),(1,0,1,1)) x1 + ((1,0,0,0),(1,1,0,0),(0,1,0,0),(0,0,0,0)) x2 + (36,33,2,18)
      a__U43_A(x1) = ((1,0,0,0),(0,1,0,0),(0,0,1,0),(1,1,0,1)) x1 + (2,32,2,1)
      a__isNatIList_A(x1) = ((1,0,0,0),(0,1,0,0),(1,0,0,0),(1,1,0,0)) x1 + (48,0,246,333)
      a__U51_A(x1,x2,x3) = ((1,0,0,0),(0,1,0,0),(1,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(1,0,0,0),(1,0,0,0),(0,0,0,0)) x2 + ((1,0,0,0),(1,1,0,0),(1,0,0,0),(0,0,0,0)) x3 + (4,19,272,195)
      a__U52_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(1,0,0,0),(1,0,0,0)) x1 + ((1,0,0,0),(1,0,0,0),(1,0,0,0),(0,0,0,0)) x2 + (1,2,152,162)
      a__U53_A(x1) = ((1,0,0,0),(0,0,0,0),(1,0,0,0),(1,1,0,0)) x1 + (11,16,161,161)
      a__U61_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(1,0,0,0),(0,0,0,0)) x1 + x2 + (35,5,215,181)
      a__length_A(x1) = ((1,0,0,0),(0,1,0,0),(1,0,1,0),(0,1,0,0)) x1 + (20,1,2,167)
      nil_A() = (176,1,1,0)
      isNatList_A(x1) = ((1,0,0,0),(0,1,0,0),(0,1,0,0),(0,0,0,0)) x1 + (1,0,176,1)
      U41_A(x1,x2,x3) = ((1,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(0,0,0,0),(1,1,0,0),(0,0,0,0)) x2 + ((1,0,0,0),(0,0,0,0),(1,1,0,0),(0,0,0,0)) x3 + (39,184,1,1)
      isNatIList_A(x1) = x1 + (34,1,1,1)
      U61_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(1,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x2 + (34,4,1,181)

The next rules are strictly ordered:

  p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31, p32, p33, p34, p35, p36, p37, p38, p39, p40, p41, p42, p43, p44

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__U61#(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
p2: a__U61#(tt(),L) -> a__length#(mark(L))

and R consists of:

r1: a__zeros() -> cons(|0|(),zeros())
r2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1))
r3: a__U12(tt()) -> tt()
r4: a__U21(tt(),V1) -> a__U22(a__isNat(V1))
r5: a__U22(tt()) -> tt()
r6: a__U31(tt(),V) -> a__U32(a__isNatList(V))
r7: a__U32(tt()) -> tt()
r8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2)
r9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2))
r10: a__U43(tt()) -> tt()
r11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2)
r12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2))
r13: a__U53(tt()) -> tt()
r14: a__U61(tt(),L) -> s(a__length(mark(L)))
r15: a__and(tt(),X) -> mark(X)
r16: a__isNat(|0|()) -> tt()
r17: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1)
r18: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1)
r19: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V)
r20: a__isNatIList(zeros()) -> tt()
r21: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r22: a__isNatIListKind(nil()) -> tt()
r23: a__isNatIListKind(zeros()) -> tt()
r24: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2))
r25: a__isNatKind(|0|()) -> tt()
r26: a__isNatKind(length(V1)) -> a__isNatIListKind(V1)
r27: a__isNatKind(s(V1)) -> a__isNatKind(V1)
r28: a__isNatList(nil()) -> tt()
r29: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2)
r30: a__length(nil()) -> |0|()
r31: a__length(cons(N,L)) -> a__U61(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L)
r32: mark(zeros()) -> a__zeros()
r33: mark(U11(X1,X2)) -> a__U11(mark(X1),X2)
r34: mark(U12(X)) -> a__U12(mark(X))
r35: mark(isNatList(X)) -> a__isNatList(X)
r36: mark(U21(X1,X2)) -> a__U21(mark(X1),X2)
r37: mark(U22(X)) -> a__U22(mark(X))
r38: mark(isNat(X)) -> a__isNat(X)
r39: mark(U31(X1,X2)) -> a__U31(mark(X1),X2)
r40: mark(U32(X)) -> a__U32(mark(X))
r41: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3)
r42: mark(U42(X1,X2)) -> a__U42(mark(X1),X2)
r43: mark(U43(X)) -> a__U43(mark(X))
r44: mark(isNatIList(X)) -> a__isNatIList(X)
r45: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3)
r46: mark(U52(X1,X2)) -> a__U52(mark(X1),X2)
r47: mark(U53(X)) -> a__U53(mark(X))
r48: mark(U61(X1,X2)) -> a__U61(mark(X1),X2)
r49: mark(length(X)) -> a__length(mark(X))
r50: mark(and(X1,X2)) -> a__and(mark(X1),X2)
r51: mark(isNatIListKind(X)) -> a__isNatIListKind(X)
r52: mark(isNatKind(X)) -> a__isNatKind(X)
r53: mark(cons(X1,X2)) -> cons(mark(X1),X2)
r54: mark(|0|()) -> |0|()
r55: mark(tt()) -> tt()
r56: mark(s(X)) -> s(mark(X))
r57: mark(nil()) -> nil()
r58: a__zeros() -> zeros()
r59: a__U11(X1,X2) -> U11(X1,X2)
r60: a__U12(X) -> U12(X)
r61: a__isNatList(X) -> isNatList(X)
r62: a__U21(X1,X2) -> U21(X1,X2)
r63: a__U22(X) -> U22(X)
r64: a__isNat(X) -> isNat(X)
r65: a__U31(X1,X2) -> U31(X1,X2)
r66: a__U32(X) -> U32(X)
r67: a__U41(X1,X2,X3) -> U41(X1,X2,X3)
r68: a__U42(X1,X2) -> U42(X1,X2)
r69: a__U43(X) -> U43(X)
r70: a__isNatIList(X) -> isNatIList(X)
r71: a__U51(X1,X2,X3) -> U51(X1,X2,X3)
r72: a__U52(X1,X2) -> U52(X1,X2)
r73: a__U53(X) -> U53(X)
r74: a__U61(X1,X2) -> U61(X1,X2)
r75: a__length(X) -> length(X)
r76: a__and(X1,X2) -> and(X1,X2)
r77: a__isNatIListKind(X) -> isNatIListKind(X)
r78: a__isNatKind(X) -> isNatKind(X)

The set of usable rules consists of

  r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26, r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39, r40, r41, 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, r77, r78

Take the reduction pair:

  matrix interpretations:
  
    carrier: N^4
    order: lexicographic order
    interpretations:
      a__length#_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(0,1,1,0)) x1
      cons_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(1,0,0,0),(1,1,0,0)) x1 + ((1,0,0,0),(1,1,0,0),(1,0,1,0),(1,0,0,1)) x2 + (16,18,16,17)
      a__U61#_A(x1,x2) = ((0,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + ((0,0,0,0),(1,0,0,0),(0,1,0,0),(0,1,1,0)) x2 + (0,16,18,22)
      a__and_A(x1,x2) = x1 + ((1,0,0,0),(0,1,0,0),(1,1,1,0),(0,0,0,1)) x2 + (1,27,19,0)
      a__isNatList_A(x1) = x1 + (1,23,38,3)
      isNatIListKind_A(x1) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (1,14,1,16)
      and_A(x1,x2) = ((1,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(0,1,0,0),(1,1,1,0),(1,0,0,0)) x2 + (1,10,2,1)
      isNat_A(x1) = ((1,0,0,0),(1,0,0,0),(1,0,0,0),(1,0,0,0)) x1 + (4,1,1,0)
      isNatKind_A(x1) = ((1,0,0,0),(1,1,0,0),(1,1,1,0),(1,0,0,0)) x1 + (2,1,1,1)
      tt_A() = (15,21,34,0)
      mark_A(x1) = ((1,0,0,0),(0,1,0,0),(0,0,1,0),(1,1,1,0)) x1 + (16,18,18,0)
      a__zeros_A() = (16,18,76,58)
      |0|_A() = (0,39,19,0)
      zeros_A() = (0,0,59,1)
      a__U11_A(x1,x2) = (20,0,36,2)
      a__U12_A(x1) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (16,7,35,0)
      a__U21_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + ((0,0,0,0),(1,0,0,0),(1,0,0,0),(1,1,0,0)) x2 + (2,5,34,21)
      a__U22_A(x1) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (16,5,34,0)
      a__isNat_A(x1) = ((1,0,0,0),(1,0,0,0),(0,1,0,0),(0,0,0,0)) x1 + (20,0,0,0)
      a__U31_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + ((0,0,0,0),(1,0,0,0),(1,0,0,0),(1,1,0,0)) x2 + (17,5,39,23)
      a__U32_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(0,0,0,0)) x1 + (16,4,17,1)
      a__U41_A(x1,x2,x3) = ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,1,0,0)) x2 + (18,22,40,21)
      a__U42_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (17,2,39,0)
      a__U43_A(x1) = ((0,0,0,0),(0,0,0,0),(1,0,0,0),(1,0,0,0)) x1 + (16,2,19,0)
      a__isNatIList_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(0,0,0,0)) x1 + (19,22,40,22)
      a__U51_A(x1,x2,x3) = ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x2 + ((1,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x3 + (16,23,37,44)
      a__U52_A(x1,x2) = ((0,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,1,0,0)) x2 + (16,23,36,25)
      a__U53_A(x1) = (15,22,35,41)
      a__U61_A(x1,x2) = x2 + (16,38,2,23)
      s_A(x1) = x1 + (0,33,1,1)
      a__length_A(x1) = x1 + (0,38,18,24)
      length_A(x1) = ((1,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (0,37,0,25)
      a__isNatIListKind_A(x1) = ((1,0,0,0),(0,1,0,0),(1,0,0,0),(0,0,0,0)) x1 + (16,22,19,16)
      a__isNatKind_A(x1) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + (17,20,19,4)
      nil_A() = (14,1,1,0)
      U11_A(x1,x2) = (20,0,1,0)
      U12_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(0,1,0,0)) x1 + (16,5,18,0)
      U21_A(x1,x2) = ((1,0,0,0),(1,0,0,0),(0,0,0,0),(0,1,0,0)) x1 + ((0,0,0,0),(1,0,0,0),(1,0,0,0),(1,0,0,0)) x2 + (2,4,16,21)
      U22_A(x1) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(1,0,0,0)) x1 + (16,1,16,0)
      U31_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(0,0,0,0)) x1 + ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,1,0,0)) x2 + (2,2,20,0)
      U32_A(x1) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(0,0,0,0)) x1 + (16,1,18,0)
      U41_A(x1,x2,x3) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(1,0,0,0)) x1 + ((0,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x2 + ((0,0,0,0),(0,0,0,0),(1,0,0,0),(1,0,0,0)) x3 + (2,5,1,0)
      U42_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(0,0,0,0),(0,0,0,0)) x1 + ((0,0,0,0),(0,0,0,0),(0,0,0,0),(1,0,0,0)) x2 + (16,1,22,0)
      U43_A(x1) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(1,0,0,0)) x1 + (0,1,18,1)
      isNatIList_A(x1) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(0,0,0,0)) x1 + (3,5,15,23)
      U51_A(x1,x2,x3) = ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,1,0,0)) x1 + ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x2 + ((1,0,0,0),(0,0,0,0),(1,1,0,0),(0,0,0,0)) x3 + (0,6,38,0)
      U52_A(x1,x2) = ((0,0,0,0),(1,0,0,0),(1,1,0,0),(0,0,1,0)) x1 + ((0,0,0,0),(1,0,0,0),(1,0,0,0),(1,0,0,0)) x2 + (1,1,1,0)
      U53_A(x1) = ((0,0,0,0),(1,0,0,0),(0,1,0,0),(1,0,1,0)) x1 + (0,5,1,0)
      U61_A(x1,x2) = ((0,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x1 + ((1,0,0,0),(0,0,0,0),(1,0,0,0),(0,0,0,0)) x2 + (1,21,1,0)
      isNatList_A(x1) = ((1,0,0,0),(1,0,0,0),(1,1,0,0),(0,1,0,0)) x1 + (0,1,1,0)

The next rules are strictly ordered:

  p1, p2

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