MAYBE

Problem:
 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(),L,N) -> a__U62(a__isNat(N),L)
 a__U62(tt(),L) -> s(a__length(mark(L)))
 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__length(nil()) -> 0()
 a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
 mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
 mark(isNat(X)) -> a__isNat(X)
 mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
 a__U62(X1,X2) -> U62(X1,X2)
 a__isNat(X) -> isNat(X)
 a__length(X) -> length(X)

Proof:
 DP Processor:
  DPs:
   a__U41#(tt(),V2) -> a__isNatIList#(V2)
   a__U41#(tt(),V2) -> a__U42#(a__isNatIList(V2))
   a__U51#(tt(),V2) -> a__isNatList#(V2)
   a__U51#(tt(),V2) -> a__U52#(a__isNatList(V2))
   a__U61#(tt(),L,N) -> a__isNat#(N)
   a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
   a__U62#(tt(),L) -> mark#(L)
   a__U62#(tt(),L) -> a__length#(mark(L))
   a__isNat#(length(V1)) -> a__isNatList#(V1)
   a__isNat#(length(V1)) -> a__U11#(a__isNatList(V1))
   a__isNat#(s(V1)) -> a__isNat#(V1)
   a__isNat#(s(V1)) -> a__U21#(a__isNat(V1))
   a__isNatIList#(V) -> a__isNatList#(V)
   a__isNatIList#(V) -> a__U31#(a__isNatList(V))
   a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1)
   a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2)
   a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
   a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2)
   a__length#(cons(N,L)) -> a__isNatList#(L)
   a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
   mark#(zeros()) -> a__zeros#()
   mark#(U11(X)) -> mark#(X)
   mark#(U11(X)) -> a__U11#(mark(X))
   mark#(U21(X)) -> mark#(X)
   mark#(U21(X)) -> a__U21#(mark(X))
   mark#(U31(X)) -> mark#(X)
   mark#(U31(X)) -> a__U31#(mark(X))
   mark#(U41(X1,X2)) -> mark#(X1)
   mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
   mark#(U42(X)) -> mark#(X)
   mark#(U42(X)) -> a__U42#(mark(X))
   mark#(isNatIList(X)) -> a__isNatIList#(X)
   mark#(U51(X1,X2)) -> mark#(X1)
   mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
   mark#(U52(X)) -> mark#(X)
   mark#(U52(X)) -> a__U52#(mark(X))
   mark#(isNatList(X)) -> a__isNatList#(X)
   mark#(U61(X1,X2,X3)) -> mark#(X1)
   mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
   mark#(U62(X1,X2)) -> mark#(X1)
   mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
   mark#(isNat(X)) -> a__isNat#(X)
   mark#(length(X)) -> mark#(X)
   mark#(length(X)) -> a__length#(mark(X))
   mark#(cons(X1,X2)) -> mark#(X1)
   mark#(s(X)) -> mark#(X)
  TRS:
   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(),L,N) -> a__U62(a__isNat(N),L)
   a__U62(tt(),L) -> s(a__length(mark(L)))
   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__length(nil()) -> 0()
   a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
   mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
   mark(isNat(X)) -> a__isNat(X)
   mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
   a__U62(X1,X2) -> U62(X1,X2)
   a__isNat(X) -> isNat(X)
   a__length(X) -> length(X)
  EDG Processor:
   DPs:
    a__U41#(tt(),V2) -> a__isNatIList#(V2)
    a__U41#(tt(),V2) -> a__U42#(a__isNatIList(V2))
    a__U51#(tt(),V2) -> a__isNatList#(V2)
    a__U51#(tt(),V2) -> a__U52#(a__isNatList(V2))
    a__U61#(tt(),L,N) -> a__isNat#(N)
    a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
    a__U62#(tt(),L) -> mark#(L)
    a__U62#(tt(),L) -> a__length#(mark(L))
    a__isNat#(length(V1)) -> a__isNatList#(V1)
    a__isNat#(length(V1)) -> a__U11#(a__isNatList(V1))
    a__isNat#(s(V1)) -> a__isNat#(V1)
    a__isNat#(s(V1)) -> a__U21#(a__isNat(V1))
    a__isNatIList#(V) -> a__isNatList#(V)
    a__isNatIList#(V) -> a__U31#(a__isNatList(V))
    a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1)
    a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2)
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
    a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2)
    a__length#(cons(N,L)) -> a__isNatList#(L)
    a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
    mark#(zeros()) -> a__zeros#()
    mark#(U11(X)) -> mark#(X)
    mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U21(X)) -> mark#(X)
    mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U31(X)) -> mark#(X)
    mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U42(X)) -> mark#(X)
    mark#(U42(X)) -> a__U42#(mark(X))
    mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U52(X)) -> mark#(X)
    mark#(U52(X)) -> a__U52#(mark(X))
    mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(isNat(X)) -> a__isNat#(X)
    mark#(length(X)) -> mark#(X)
    mark#(length(X)) -> a__length#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X)
   TRS:
    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(),L,N) -> a__U62(a__isNat(N),L)
    a__U62(tt(),L) -> s(a__length(mark(L)))
    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__length(nil()) -> 0()
    a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
    mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
    mark(isNat(X)) -> a__isNat(X)
    mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
    a__U62(X1,X2) -> U62(X1,X2)
    a__isNat(X) -> isNat(X)
    a__length(X) -> length(X)
   graph:
    a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) ->
    a__U61#(tt(),L,N) -> a__isNat#(N)
    a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N) ->
    a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
    a__length#(cons(N,L)) -> a__isNatList#(L) ->
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
    a__length#(cons(N,L)) -> a__isNatList#(L) ->
    a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2)
    mark#(isNat(X)) -> a__isNat#(X) ->
    a__isNat#(length(V1)) -> a__isNatList#(V1)
    mark#(isNat(X)) -> a__isNat#(X) ->
    a__isNat#(length(V1)) -> a__U11#(a__isNatList(V1))
    mark#(isNat(X)) -> a__isNat#(X) ->
    a__isNat#(s(V1)) -> a__isNat#(V1)
    mark#(isNat(X)) -> a__isNat#(X) ->
    a__isNat#(s(V1)) -> a__U21#(a__isNat(V1))
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(zeros()) -> a__zeros#()
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(U11(X)) -> mark#(X)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(U21(X)) -> mark#(X)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(U31(X)) -> mark#(X)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(U42(X)) -> mark#(X)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(U52(X)) -> mark#(X)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(length(X)) -> mark#(X)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(length(X)) -> a__length#(mark(X))
    mark#(U62(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U62(X1,X2)) -> mark#(X1) ->
    mark#(s(X)) -> mark#(X)
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) ->
    a__U62#(tt(),L) -> mark#(L)
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2) ->
    a__U62#(tt(),L) -> a__length#(mark(L))
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(zeros()) -> a__zeros#()
    mark#(U61(X1,X2,X3)) -> mark#(X1) -> mark#(U11(X)) -> mark#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U61(X1,X2,X3)) -> mark#(X1) -> mark#(U21(X)) -> mark#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U61(X1,X2,X3)) -> mark#(X1) -> mark#(U31(X)) -> mark#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U61(X1,X2,X3)) -> mark#(X1) -> mark#(U42(X)) -> mark#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U61(X1,X2,X3)) -> mark#(X1) -> mark#(U52(X)) -> mark#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(isNat(X)) -> a__isNat#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(length(X)) -> mark#(X)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(length(X)) -> a__length#(mark(X))
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U61(X1,X2,X3)) -> mark#(X1) ->
    mark#(s(X)) -> mark#(X)
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) ->
    a__U61#(tt(),L,N) -> a__isNat#(N)
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3) ->
    a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
    mark#(isNatList(X)) -> a__isNatList#(X) ->
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
    mark#(isNatList(X)) -> a__isNatList#(X) ->
    a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2)
    mark#(U52(X)) -> mark#(X) -> mark#(zeros()) -> a__zeros#()
    mark#(U52(X)) -> mark#(X) -> mark#(U11(X)) -> mark#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U52(X)) -> mark#(X) -> mark#(U21(X)) -> mark#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U52(X)) -> mark#(X) -> mark#(U31(X)) -> mark#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U52(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U52(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U52(X)) -> mark#(X) -> mark#(U42(X)) -> mark#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U52(X)) -> mark#(X) -> mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U52(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U52(X)) -> mark#(X) -> mark#(U52(X)) -> mark#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U52(X)) -> mark#(X) -> mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U52(X)) -> mark#(X) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U52(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U52(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U52(X)) -> mark#(X) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(length(X)) -> mark#(X)
    mark#(U52(X)) -> mark#(X) -> mark#(length(X)) -> a__length#(mark(X))
    mark#(U52(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U52(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(zeros()) -> a__zeros#()
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(U11(X)) -> mark#(X)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(U21(X)) -> mark#(X)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(U31(X)) -> mark#(X)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(U42(X)) -> mark#(X)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(U52(X)) -> mark#(X)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(length(X)) -> mark#(X)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(length(X)) -> a__length#(mark(X))
    mark#(U51(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U51(X1,X2)) -> mark#(X1) ->
    mark#(s(X)) -> mark#(X)
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) ->
    a__U51#(tt(),V2) -> a__isNatList#(V2)
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2) ->
    a__U51#(tt(),V2) -> a__U52#(a__isNatList(V2))
    mark#(isNatIList(X)) -> a__isNatIList#(X) ->
    a__isNatIList#(V) -> a__isNatList#(V)
    mark#(isNatIList(X)) -> a__isNatIList#(X) ->
    a__isNatIList#(V) -> a__U31#(a__isNatList(V))
    mark#(isNatIList(X)) -> a__isNatIList#(X) ->
    a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1)
    mark#(isNatIList(X)) -> a__isNatIList#(X) ->
    a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2)
    mark#(U42(X)) -> mark#(X) -> mark#(zeros()) -> a__zeros#()
    mark#(U42(X)) -> mark#(X) -> mark#(U11(X)) -> mark#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U42(X)) -> mark#(X) -> mark#(U21(X)) -> mark#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U42(X)) -> mark#(X) -> mark#(U31(X)) -> mark#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U42(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U42(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U42(X)) -> mark#(X) -> mark#(U42(X)) -> mark#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U42(X)) -> mark#(X) -> mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U42(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U42(X)) -> mark#(X) -> mark#(U52(X)) -> mark#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U42(X)) -> mark#(X) -> mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U42(X)) -> mark#(X) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U42(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U42(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U42(X)) -> mark#(X) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(length(X)) -> mark#(X)
    mark#(U42(X)) -> mark#(X) -> mark#(length(X)) -> a__length#(mark(X))
    mark#(U42(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U42(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(zeros()) -> a__zeros#()
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(U11(X)) -> mark#(X)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(U21(X)) -> mark#(X)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(U31(X)) -> mark#(X)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(U42(X)) -> mark#(X)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(U52(X)) -> mark#(X)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(length(X)) -> mark#(X)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(length(X)) -> a__length#(mark(X))
    mark#(U41(X1,X2)) -> mark#(X1) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U41(X1,X2)) -> mark#(X1) ->
    mark#(s(X)) -> mark#(X)
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) ->
    a__U41#(tt(),V2) -> a__isNatIList#(V2)
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2) ->
    a__U41#(tt(),V2) -> a__U42#(a__isNatIList(V2))
    mark#(U31(X)) -> mark#(X) -> mark#(zeros()) -> a__zeros#()
    mark#(U31(X)) -> mark#(X) -> mark#(U11(X)) -> mark#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U31(X)) -> mark#(X) -> mark#(U21(X)) -> mark#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U31(X)) -> mark#(X) -> mark#(U31(X)) -> mark#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U31(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U31(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U31(X)) -> mark#(X) -> mark#(U42(X)) -> mark#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U31(X)) -> mark#(X) -> mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U31(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U31(X)) -> mark#(X) -> mark#(U52(X)) -> mark#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U31(X)) -> mark#(X) -> mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U31(X)) -> mark#(X) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U31(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U31(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U31(X)) -> mark#(X) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(length(X)) -> mark#(X)
    mark#(U31(X)) -> mark#(X) -> mark#(length(X)) -> a__length#(mark(X))
    mark#(U31(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U31(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(zeros()) -> a__zeros#()
    mark#(U21(X)) -> mark#(X) -> mark#(U11(X)) -> mark#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U21(X)) -> mark#(X) -> mark#(U21(X)) -> mark#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U21(X)) -> mark#(X) -> mark#(U31(X)) -> mark#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U21(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U21(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U21(X)) -> mark#(X) -> mark#(U42(X)) -> mark#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U21(X)) -> mark#(X) -> mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U21(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U21(X)) -> mark#(X) -> mark#(U52(X)) -> mark#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U21(X)) -> mark#(X) -> mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U21(X)) -> mark#(X) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U21(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U21(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U21(X)) -> mark#(X) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(length(X)) -> mark#(X)
    mark#(U21(X)) -> mark#(X) -> mark#(length(X)) -> a__length#(mark(X))
    mark#(U21(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U21(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(zeros()) -> a__zeros#()
    mark#(U11(X)) -> mark#(X) -> mark#(U11(X)) -> mark#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(U11(X)) -> a__U11#(mark(X))
    mark#(U11(X)) -> mark#(X) -> mark#(U21(X)) -> mark#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(U21(X)) -> a__U21#(mark(X))
    mark#(U11(X)) -> mark#(X) -> mark#(U31(X)) -> mark#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(U31(X)) -> a__U31#(mark(X))
    mark#(U11(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(U11(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(U11(X)) -> mark#(X) -> mark#(U42(X)) -> mark#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(U42(X)) -> a__U42#(mark(X))
    mark#(U11(X)) -> mark#(X) -> mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(U11(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(U11(X)) -> mark#(X) -> mark#(U52(X)) -> mark#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(U52(X)) -> a__U52#(mark(X))
    mark#(U11(X)) -> mark#(X) -> mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(U11(X)) -> mark#(X) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(U11(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(U11(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(U11(X)) -> mark#(X) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(length(X)) -> mark#(X)
    mark#(U11(X)) -> mark#(X) -> mark#(length(X)) -> a__length#(mark(X))
    mark#(U11(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(U11(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(length(X)) -> a__length#(mark(X)) ->
    a__length#(cons(N,L)) -> a__isNatList#(L)
    mark#(length(X)) -> a__length#(mark(X)) ->
    a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
    mark#(length(X)) -> mark#(X) -> mark#(zeros()) -> a__zeros#()
    mark#(length(X)) -> mark#(X) -> mark#(U11(X)) -> mark#(X)
    mark#(length(X)) -> mark#(X) -> mark#(U11(X)) -> a__U11#(mark(X))
    mark#(length(X)) -> mark#(X) -> mark#(U21(X)) -> mark#(X)
    mark#(length(X)) -> mark#(X) -> mark#(U21(X)) -> a__U21#(mark(X))
    mark#(length(X)) -> mark#(X) -> mark#(U31(X)) -> mark#(X)
    mark#(length(X)) -> mark#(X) -> mark#(U31(X)) -> a__U31#(mark(X))
    mark#(length(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(length(X)) -> mark#(X) ->
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(length(X)) -> mark#(X) -> mark#(U42(X)) -> mark#(X)
    mark#(length(X)) -> mark#(X) -> mark#(U42(X)) -> a__U42#(mark(X))
    mark#(length(X)) -> mark#(X) ->
    mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(length(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(length(X)) -> mark#(X) ->
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(length(X)) -> mark#(X) -> mark#(U52(X)) -> mark#(X)
    mark#(length(X)) -> mark#(X) -> mark#(U52(X)) -> a__U52#(mark(X))
    mark#(length(X)) -> mark#(X) ->
    mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(length(X)) -> mark#(X) -> mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(length(X)) -> mark#(X) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(length(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(length(X)) -> mark#(X) ->
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(length(X)) -> mark#(X) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(length(X)) -> mark#(X) -> mark#(length(X)) -> mark#(X)
    mark#(length(X)) -> mark#(X) ->
    mark#(length(X)) -> a__length#(mark(X))
    mark#(length(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(length(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(zeros()) -> a__zeros#()
    mark#(s(X)) -> mark#(X) -> mark#(U11(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(U11(X)) -> a__U11#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(U21(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(U21(X)) -> a__U21#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(U31(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(U31(X)) -> a__U31#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) -> mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(s(X)) -> mark#(X) -> mark#(U42(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(U42(X)) -> a__U42#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(s(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) -> mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(s(X)) -> mark#(X) -> mark#(U52(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(U52(X)) -> a__U52#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(s(X)) -> mark#(X) -> mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(s(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) -> mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(s(X)) -> mark#(X) -> mark#(isNat(X)) -> a__isNat#(X)
    mark#(s(X)) -> mark#(X) -> mark#(length(X)) -> mark#(X)
    mark#(s(X)) -> mark#(X) -> mark#(length(X)) -> a__length#(mark(X))
    mark#(s(X)) -> mark#(X) -> mark#(cons(X1,X2)) -> mark#(X1)
    mark#(s(X)) -> mark#(X) -> mark#(s(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(zeros()) -> a__zeros#()
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(U11(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U11(X)) -> a__U11#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(U21(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U21(X)) -> a__U21#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(U31(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U31(X)) -> a__U31#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U41(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(U42(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U42(X)) -> a__U42#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(isNatIList(X)) -> a__isNatIList#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U51(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(U52(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U52(X)) -> a__U52#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(isNatList(X)) -> a__isNatList#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U62(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(isNat(X)) -> a__isNat#(X)
    mark#(cons(X1,X2)) -> mark#(X1) -> mark#(length(X)) -> mark#(X)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(length(X)) -> a__length#(mark(X))
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(cons(X1,X2)) -> mark#(X1)
    mark#(cons(X1,X2)) -> mark#(X1) ->
    mark#(s(X)) -> mark#(X)
    a__U62#(tt(),L) -> a__length#(mark(L)) ->
    a__length#(cons(N,L)) -> a__isNatList#(L)
    a__U62#(tt(),L) -> a__length#(mark(L)) ->
    a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
    a__U62#(tt(),L) -> mark#(L) -> mark#(zeros()) -> a__zeros#()
    a__U62#(tt(),L) -> mark#(L) -> mark#(U11(X)) -> mark#(X)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U11(X)) -> a__U11#(mark(X))
    a__U62#(tt(),L) -> mark#(L) -> mark#(U21(X)) -> mark#(X)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U21(X)) -> a__U21#(mark(X))
    a__U62#(tt(),L) -> mark#(L) -> mark#(U31(X)) -> mark#(X)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U31(X)) -> a__U31#(mark(X))
    a__U62#(tt(),L) -> mark#(L) -> mark#(U41(X1,X2)) -> mark#(X1)
    a__U62#(tt(),L) -> mark#(L) ->
    mark#(U41(X1,X2)) -> a__U41#(mark(X1),X2)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U42(X)) -> mark#(X)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U42(X)) -> a__U42#(mark(X))
    a__U62#(tt(),L) -> mark#(L) ->
    mark#(isNatIList(X)) -> a__isNatIList#(X)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U51(X1,X2)) -> mark#(X1)
    a__U62#(tt(),L) -> mark#(L) ->
    mark#(U51(X1,X2)) -> a__U51#(mark(X1),X2)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U52(X)) -> mark#(X)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U52(X)) -> a__U52#(mark(X))
    a__U62#(tt(),L) -> mark#(L) ->
    mark#(isNatList(X)) -> a__isNatList#(X)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U61(X1,X2,X3)) -> mark#(X1)
    a__U62#(tt(),L) -> mark#(L) ->
    mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
    a__U62#(tt(),L) -> mark#(L) -> mark#(U62(X1,X2)) -> mark#(X1)
    a__U62#(tt(),L) -> mark#(L) ->
    mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
    a__U62#(tt(),L) -> mark#(L) -> mark#(isNat(X)) -> a__isNat#(X)
    a__U62#(tt(),L) -> mark#(L) -> mark#(length(X)) -> mark#(X)
    a__U62#(tt(),L) -> mark#(L) ->
    mark#(length(X)) -> a__length#(mark(X))
    a__U62#(tt(),L) -> mark#(L) -> mark#(cons(X1,X2)) -> mark#(X1)
    a__U62#(tt(),L) -> mark#(L) ->
    mark#(s(X)) -> mark#(X)
    a__isNat#(length(V1)) -> a__isNatList#(V1) ->
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
    a__isNat#(length(V1)) -> a__isNatList#(V1) ->
    a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2)
    a__isNat#(s(V1)) -> a__isNat#(V1) ->
    a__isNat#(length(V1)) -> a__isNatList#(V1)
    a__isNat#(s(V1)) -> a__isNat#(V1) ->
    a__isNat#(length(V1)) -> a__U11#(a__isNatList(V1))
    a__isNat#(s(V1)) -> a__isNat#(V1) ->
    a__isNat#(s(V1)) -> a__isNat#(V1)
    a__isNat#(s(V1)) -> a__isNat#(V1) ->
    a__isNat#(s(V1)) -> a__U21#(a__isNat(V1))
    a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) ->
    a__U62#(tt(),L) -> mark#(L)
    a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L) ->
    a__U62#(tt(),L) -> a__length#(mark(L))
    a__U61#(tt(),L,N) -> a__isNat#(N) ->
    a__isNat#(length(V1)) -> a__isNatList#(V1)
    a__U61#(tt(),L,N) -> a__isNat#(N) ->
    a__isNat#(length(V1)) -> a__U11#(a__isNatList(V1))
    a__U61#(tt(),L,N) -> a__isNat#(N) ->
    a__isNat#(s(V1)) -> a__isNat#(V1)
    a__U61#(tt(),L,N) -> a__isNat#(N) ->
    a__isNat#(s(V1)) -> a__U21#(a__isNat(V1))
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) ->
    a__isNat#(length(V1)) -> a__isNatList#(V1)
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) ->
    a__isNat#(length(V1)) -> a__U11#(a__isNatList(V1))
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) ->
    a__isNat#(s(V1)) -> a__isNat#(V1)
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1) ->
    a__isNat#(s(V1)) -> a__U21#(a__isNat(V1))
    a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) ->
    a__U51#(tt(),V2) -> a__isNatList#(V2)
    a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2) ->
    a__U51#(tt(),V2) -> a__U52#(a__isNatList(V2))
    a__U51#(tt(),V2) -> a__isNatList#(V2) ->
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
    a__U51#(tt(),V2) -> a__isNatList#(V2) ->
    a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2)
    a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) ->
    a__isNat#(length(V1)) -> a__isNatList#(V1)
    a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) ->
    a__isNat#(length(V1)) -> a__U11#(a__isNatList(V1))
    a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) ->
    a__isNat#(s(V1)) -> a__isNat#(V1)
    a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1) ->
    a__isNat#(s(V1)) -> a__U21#(a__isNat(V1))
    a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) ->
    a__U41#(tt(),V2) -> a__isNatIList#(V2)
    a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2) ->
    a__U41#(tt(),V2) -> a__U42#(a__isNatIList(V2))
    a__isNatIList#(V) -> a__isNatList#(V) ->
    a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
    a__isNatIList#(V) -> a__isNatList#(V) ->
    a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2)
    a__U41#(tt(),V2) -> a__isNatIList#(V2) ->
    a__isNatIList#(V) -> a__isNatList#(V)
    a__U41#(tt(),V2) -> a__isNatIList#(V2) ->
    a__isNatIList#(V) -> a__U31#(a__isNatList(V))
    a__U41#(tt(),V2) -> a__isNatIList#(V2) ->
    a__isNatIList#(cons(V1,V2)) -> a__isNat#(V1)
    a__U41#(tt(),V2) -> a__isNatIList#(V2) ->
    a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2)
   SCC Processor:
    #sccs: 3
    #rules: 26
    #arcs: 396/2116
    DPs:
     a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
     a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
     a__U62#(tt(),L) -> a__length#(mark(L))
     a__U62#(tt(),L) -> mark#(L)
     mark#(s(X)) -> mark#(X)
     mark#(cons(X1,X2)) -> mark#(X1)
     mark#(length(X)) -> a__length#(mark(X))
     mark#(length(X)) -> mark#(X)
     mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
     mark#(U62(X1,X2)) -> mark#(X1)
     mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
     mark#(U61(X1,X2,X3)) -> mark#(X1)
     mark#(U52(X)) -> mark#(X)
     mark#(U51(X1,X2)) -> mark#(X1)
     mark#(U42(X)) -> mark#(X)
     mark#(U41(X1,X2)) -> mark#(X1)
     mark#(U31(X)) -> mark#(X)
     mark#(U21(X)) -> mark#(X)
     mark#(U11(X)) -> mark#(X)
    TRS:
     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(),L,N) -> a__U62(a__isNat(N),L)
     a__U62(tt(),L) -> s(a__length(mark(L)))
     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__length(nil()) -> 0()
     a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
     mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
     mark(isNat(X)) -> a__isNat(X)
     mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
     a__U62(X1,X2) -> U62(X1,X2)
     a__isNat(X) -> isNat(X)
     a__length(X) -> length(X)
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [a__length#](x0) = x0,
      
      [mark#](x0) = x0,
      
      [a__U62#](x0, x1) = x1,
      
      [a__U61#](x0, x1, x2) = x1,
      
      [isNat](x0) = 0,
      
      [U62](x0, x1) = x0 + x1,
      
      [U61](x0, x1, x2) = x0 + x1,
      
      [isNatList](x0) = 0,
      
      [U52](x0) = x0,
      
      [U51](x0, x1) = x0,
      
      [isNatIList](x0) = 1,
      
      [U42](x0) = x0,
      
      [U41](x0, x1) = x0 + 1,
      
      [U31](x0) = x0,
      
      [U21](x0) = x0,
      
      [U11](x0) = x0,
      
      [nil] = 1,
      
      [length](x0) = x0,
      
      [s](x0) = x0,
      
      [a__length](x0) = x0,
      
      [mark](x0) = x0,
      
      [a__U62](x0, x1) = x0 + x1,
      
      [a__isNat](x0) = 0,
      
      [a__U61](x0, x1, x2) = x0 + x1,
      
      [a__U52](x0) = x0,
      
      [a__isNatList](x0) = 0,
      
      [a__U51](x0, x1) = x0,
      
      [a__U42](x0) = x0,
      
      [a__isNatIList](x0) = 1,
      
      [a__U41](x0, x1) = x0 + 1,
      
      [a__U31](x0) = x0,
      
      [a__U21](x0) = x0,
      
      [a__U11](x0) = x0,
      
      [tt] = 0,
      
      [cons](x0, x1) = x0 + x1,
      
      [zeros] = 0,
      
      [0] = 0,
      
      [a__zeros] = 0
     orientation:
      a__length#(cons(N,L)) = L + N >= L = a__U61#(a__isNatList(L),L,N)
      
      a__U61#(tt(),L,N) = L >= L = a__U62#(a__isNat(N),L)
      
      a__U62#(tt(),L) = L >= L = a__length#(mark(L))
      
      a__U62#(tt(),L) = L >= L = mark#(L)
      
      mark#(s(X)) = X >= X = mark#(X)
      
      mark#(cons(X1,X2)) = X1 + X2 >= X1 = mark#(X1)
      
      mark#(length(X)) = X >= X = a__length#(mark(X))
      
      mark#(length(X)) = X >= X = mark#(X)
      
      mark#(U62(X1,X2)) = X1 + X2 >= X2 = a__U62#(mark(X1),X2)
      
      mark#(U62(X1,X2)) = X1 + X2 >= X1 = mark#(X1)
      
      mark#(U61(X1,X2,X3)) = X1 + X2 >= X2 = a__U61#(mark(X1),X2,X3)
      
      mark#(U61(X1,X2,X3)) = X1 + X2 >= X1 = mark#(X1)
      
      mark#(U52(X)) = X >= X = mark#(X)
      
      mark#(U51(X1,X2)) = X1 >= X1 = mark#(X1)
      
      mark#(U42(X)) = X >= X = mark#(X)
      
      mark#(U41(X1,X2)) = X1 + 1 >= X1 = mark#(X1)
      
      mark#(U31(X)) = X >= X = mark#(X)
      
      mark#(U21(X)) = X >= X = mark#(X)
      
      mark#(U11(X)) = X >= X = mark#(X)
      
      a__zeros() = 0 >= 0 = cons(0(),zeros())
      
      a__U11(tt()) = 0 >= 0 = tt()
      
      a__U21(tt()) = 0 >= 0 = tt()
      
      a__U31(tt()) = 0 >= 0 = tt()
      
      a__U41(tt(),V2) = 1 >= 1 = a__U42(a__isNatIList(V2))
      
      a__U42(tt()) = 0 >= 0 = tt()
      
      a__U51(tt(),V2) = 0 >= 0 = a__U52(a__isNatList(V2))
      
      a__U52(tt()) = 0 >= 0 = tt()
      
      a__U61(tt(),L,N) = L >= L = a__U62(a__isNat(N),L)
      
      a__U62(tt(),L) = L >= L = s(a__length(mark(L)))
      
      a__isNat(0()) = 0 >= 0 = tt()
      
      a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
      
      a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
      
      a__isNatIList(V) = 1 >= 0 = a__U31(a__isNatList(V))
      
      a__isNatIList(zeros()) = 1 >= 0 = tt()
      
      a__isNatIList(cons(V1,V2)) = 1 >= 1 = a__U41(a__isNat(V1),V2)
      
      a__isNatList(nil()) = 0 >= 0 = tt()
      
      a__isNatList(cons(V1,V2)) = 0 >= 0 = a__U51(a__isNat(V1),V2)
      
      a__length(nil()) = 1 >= 0 = 0()
      
      a__length(cons(N,L)) = L + N >= L = a__U61(a__isNatList(L),L,N)
      
      mark(zeros()) = 0 >= 0 = a__zeros()
      
      mark(U11(X)) = X >= X = a__U11(mark(X))
      
      mark(U21(X)) = X >= X = a__U21(mark(X))
      
      mark(U31(X)) = X >= X = a__U31(mark(X))
      
      mark(U41(X1,X2)) = X1 + 1 >= X1 + 1 = a__U41(mark(X1),X2)
      
      mark(U42(X)) = X >= X = a__U42(mark(X))
      
      mark(isNatIList(X)) = 1 >= 1 = a__isNatIList(X)
      
      mark(U51(X1,X2)) = X1 >= X1 = a__U51(mark(X1),X2)
      
      mark(U52(X)) = X >= X = a__U52(mark(X))
      
      mark(isNatList(X)) = 0 >= 0 = a__isNatList(X)
      
      mark(U61(X1,X2,X3)) = X1 + X2 >= X1 + X2 = a__U61(mark(X1),X2,X3)
      
      mark(U62(X1,X2)) = X1 + X2 >= X1 + X2 = a__U62(mark(X1),X2)
      
      mark(isNat(X)) = 0 >= 0 = a__isNat(X)
      
      mark(length(X)) = X >= X = a__length(mark(X))
      
      mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(mark(X1),X2)
      
      mark(0()) = 0 >= 0 = 0()
      
      mark(tt()) = 0 >= 0 = tt()
      
      mark(s(X)) = X >= X = s(mark(X))
      
      mark(nil()) = 1 >= 1 = nil()
      
      a__zeros() = 0 >= 0 = zeros()
      
      a__U11(X) = X >= X = U11(X)
      
      a__U21(X) = X >= X = U21(X)
      
      a__U31(X) = X >= X = U31(X)
      
      a__U41(X1,X2) = X1 + 1 >= X1 + 1 = U41(X1,X2)
      
      a__U42(X) = X >= X = U42(X)
      
      a__isNatIList(X) = 1 >= 1 = isNatIList(X)
      
      a__U51(X1,X2) = X1 >= X1 = U51(X1,X2)
      
      a__U52(X) = X >= X = U52(X)
      
      a__isNatList(X) = 0 >= 0 = isNatList(X)
      
      a__U61(X1,X2,X3) = X1 + X2 >= X1 + X2 = U61(X1,X2,X3)
      
      a__U62(X1,X2) = X1 + X2 >= X1 + X2 = U62(X1,X2)
      
      a__isNat(X) = 0 >= 0 = isNat(X)
      
      a__length(X) = X >= X = length(X)
     problem:
      DPs:
       a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
       a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
       a__U62#(tt(),L) -> a__length#(mark(L))
       a__U62#(tt(),L) -> mark#(L)
       mark#(s(X)) -> mark#(X)
       mark#(cons(X1,X2)) -> mark#(X1)
       mark#(length(X)) -> a__length#(mark(X))
       mark#(length(X)) -> mark#(X)
       mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
       mark#(U62(X1,X2)) -> mark#(X1)
       mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
       mark#(U61(X1,X2,X3)) -> mark#(X1)
       mark#(U52(X)) -> mark#(X)
       mark#(U51(X1,X2)) -> mark#(X1)
       mark#(U42(X)) -> mark#(X)
       mark#(U31(X)) -> mark#(X)
       mark#(U21(X)) -> mark#(X)
       mark#(U11(X)) -> mark#(X)
      TRS:
       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(),L,N) -> a__U62(a__isNat(N),L)
       a__U62(tt(),L) -> s(a__length(mark(L)))
       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__length(nil()) -> 0()
       a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
       mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
       mark(isNat(X)) -> a__isNat(X)
       mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
       a__U62(X1,X2) -> U62(X1,X2)
       a__isNat(X) -> isNat(X)
       a__length(X) -> length(X)
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [a__length#](x0) = x0,
       
       [mark#](x0) = x0,
       
       [a__U62#](x0, x1) = x1,
       
       [a__U61#](x0, x1, x2) = x1,
       
       [isNat](x0) = 0,
       
       [U62](x0, x1) = x0 + x1,
       
       [U61](x0, x1, x2) = x0 + x1,
       
       [isNatList](x0) = 0,
       
       [U52](x0) = x0,
       
       [U51](x0, x1) = x0,
       
       [isNatIList](x0) = 1,
       
       [U42](x0) = x0,
       
       [U41](x0, x1) = 1,
       
       [U31](x0) = x0 + 1,
       
       [U21](x0) = x0,
       
       [U11](x0) = x0,
       
       [nil] = 0,
       
       [length](x0) = x0,
       
       [s](x0) = x0,
       
       [a__length](x0) = x0,
       
       [mark](x0) = x0,
       
       [a__U62](x0, x1) = x0 + x1,
       
       [a__isNat](x0) = 0,
       
       [a__U61](x0, x1, x2) = x0 + x1,
       
       [a__U52](x0) = x0,
       
       [a__isNatList](x0) = 0,
       
       [a__U51](x0, x1) = x0,
       
       [a__U42](x0) = x0,
       
       [a__isNatIList](x0) = 1,
       
       [a__U41](x0, x1) = 1,
       
       [a__U31](x0) = x0 + 1,
       
       [a__U21](x0) = x0,
       
       [a__U11](x0) = x0,
       
       [tt] = 0,
       
       [cons](x0, x1) = x0 + x1,
       
       [zeros] = 0,
       
       [0] = 0,
       
       [a__zeros] = 0
      orientation:
       a__length#(cons(N,L)) = L + N >= L = a__U61#(a__isNatList(L),L,N)
       
       a__U61#(tt(),L,N) = L >= L = a__U62#(a__isNat(N),L)
       
       a__U62#(tt(),L) = L >= L = a__length#(mark(L))
       
       a__U62#(tt(),L) = L >= L = mark#(L)
       
       mark#(s(X)) = X >= X = mark#(X)
       
       mark#(cons(X1,X2)) = X1 + X2 >= X1 = mark#(X1)
       
       mark#(length(X)) = X >= X = a__length#(mark(X))
       
       mark#(length(X)) = X >= X = mark#(X)
       
       mark#(U62(X1,X2)) = X1 + X2 >= X2 = a__U62#(mark(X1),X2)
       
       mark#(U62(X1,X2)) = X1 + X2 >= X1 = mark#(X1)
       
       mark#(U61(X1,X2,X3)) = X1 + X2 >= X2 = a__U61#(mark(X1),X2,X3)
       
       mark#(U61(X1,X2,X3)) = X1 + X2 >= X1 = mark#(X1)
       
       mark#(U52(X)) = X >= X = mark#(X)
       
       mark#(U51(X1,X2)) = X1 >= X1 = mark#(X1)
       
       mark#(U42(X)) = X >= X = mark#(X)
       
       mark#(U31(X)) = X + 1 >= X = mark#(X)
       
       mark#(U21(X)) = X >= X = mark#(X)
       
       mark#(U11(X)) = X >= X = mark#(X)
       
       a__zeros() = 0 >= 0 = cons(0(),zeros())
       
       a__U11(tt()) = 0 >= 0 = tt()
       
       a__U21(tt()) = 0 >= 0 = tt()
       
       a__U31(tt()) = 1 >= 0 = tt()
       
       a__U41(tt(),V2) = 1 >= 1 = a__U42(a__isNatIList(V2))
       
       a__U42(tt()) = 0 >= 0 = tt()
       
       a__U51(tt(),V2) = 0 >= 0 = a__U52(a__isNatList(V2))
       
       a__U52(tt()) = 0 >= 0 = tt()
       
       a__U61(tt(),L,N) = L >= L = a__U62(a__isNat(N),L)
       
       a__U62(tt(),L) = L >= L = s(a__length(mark(L)))
       
       a__isNat(0()) = 0 >= 0 = tt()
       
       a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
       
       a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
       
       a__isNatIList(V) = 1 >= 1 = a__U31(a__isNatList(V))
       
       a__isNatIList(zeros()) = 1 >= 0 = tt()
       
       a__isNatIList(cons(V1,V2)) = 1 >= 1 = a__U41(a__isNat(V1),V2)
       
       a__isNatList(nil()) = 0 >= 0 = tt()
       
       a__isNatList(cons(V1,V2)) = 0 >= 0 = a__U51(a__isNat(V1),V2)
       
       a__length(nil()) = 0 >= 0 = 0()
       
       a__length(cons(N,L)) = L + N >= L = a__U61(a__isNatList(L),L,N)
       
       mark(zeros()) = 0 >= 0 = a__zeros()
       
       mark(U11(X)) = X >= X = a__U11(mark(X))
       
       mark(U21(X)) = X >= X = a__U21(mark(X))
       
       mark(U31(X)) = X + 1 >= X + 1 = a__U31(mark(X))
       
       mark(U41(X1,X2)) = 1 >= 1 = a__U41(mark(X1),X2)
       
       mark(U42(X)) = X >= X = a__U42(mark(X))
       
       mark(isNatIList(X)) = 1 >= 1 = a__isNatIList(X)
       
       mark(U51(X1,X2)) = X1 >= X1 = a__U51(mark(X1),X2)
       
       mark(U52(X)) = X >= X = a__U52(mark(X))
       
       mark(isNatList(X)) = 0 >= 0 = a__isNatList(X)
       
       mark(U61(X1,X2,X3)) = X1 + X2 >= X1 + X2 = a__U61(mark(X1),X2,X3)
       
       mark(U62(X1,X2)) = X1 + X2 >= X1 + X2 = a__U62(mark(X1),X2)
       
       mark(isNat(X)) = 0 >= 0 = a__isNat(X)
       
       mark(length(X)) = X >= X = a__length(mark(X))
       
       mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(mark(X1),X2)
       
       mark(0()) = 0 >= 0 = 0()
       
       mark(tt()) = 0 >= 0 = tt()
       
       mark(s(X)) = X >= X = s(mark(X))
       
       mark(nil()) = 0 >= 0 = nil()
       
       a__zeros() = 0 >= 0 = zeros()
       
       a__U11(X) = X >= X = U11(X)
       
       a__U21(X) = X >= X = U21(X)
       
       a__U31(X) = X + 1 >= X + 1 = U31(X)
       
       a__U41(X1,X2) = 1 >= 1 = U41(X1,X2)
       
       a__U42(X) = X >= X = U42(X)
       
       a__isNatIList(X) = 1 >= 1 = isNatIList(X)
       
       a__U51(X1,X2) = X1 >= X1 = U51(X1,X2)
       
       a__U52(X) = X >= X = U52(X)
       
       a__isNatList(X) = 0 >= 0 = isNatList(X)
       
       a__U61(X1,X2,X3) = X1 + X2 >= X1 + X2 = U61(X1,X2,X3)
       
       a__U62(X1,X2) = X1 + X2 >= X1 + X2 = U62(X1,X2)
       
       a__isNat(X) = 0 >= 0 = isNat(X)
       
       a__length(X) = X >= X = length(X)
      problem:
       DPs:
        a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
        a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
        a__U62#(tt(),L) -> a__length#(mark(L))
        a__U62#(tt(),L) -> mark#(L)
        mark#(s(X)) -> mark#(X)
        mark#(cons(X1,X2)) -> mark#(X1)
        mark#(length(X)) -> a__length#(mark(X))
        mark#(length(X)) -> mark#(X)
        mark#(U62(X1,X2)) -> a__U62#(mark(X1),X2)
        mark#(U62(X1,X2)) -> mark#(X1)
        mark#(U61(X1,X2,X3)) -> a__U61#(mark(X1),X2,X3)
        mark#(U61(X1,X2,X3)) -> mark#(X1)
        mark#(U52(X)) -> mark#(X)
        mark#(U51(X1,X2)) -> mark#(X1)
        mark#(U42(X)) -> mark#(X)
        mark#(U21(X)) -> mark#(X)
        mark#(U11(X)) -> mark#(X)
       TRS:
        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(),L,N) -> a__U62(a__isNat(N),L)
        a__U62(tt(),L) -> s(a__length(mark(L)))
        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__length(nil()) -> 0()
        a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
        mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
        mark(isNat(X)) -> a__isNat(X)
        mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
        a__U62(X1,X2) -> U62(X1,X2)
        a__isNat(X) -> isNat(X)
        a__length(X) -> length(X)
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [a__length#](x0) = x0,
        
        [mark#](x0) = x0,
        
        [a__U62#](x0, x1) = x1,
        
        [a__U61#](x0, x1, x2) = x1 + x2,
        
        [isNat](x0) = 0,
        
        [U62](x0, x1) = x0 + x1 + 1,
        
        [U61](x0, x1, x2) = x0 + x1 + x2 + 1,
        
        [isNatList](x0) = 0,
        
        [U52](x0) = x0,
        
        [U51](x0, x1) = x0,
        
        [isNatIList](x0) = 0,
        
        [U42](x0) = x0,
        
        [U41](x0, x1) = 0,
        
        [U31](x0) = 0,
        
        [U21](x0) = x0,
        
        [U11](x0) = x0,
        
        [nil] = 0,
        
        [length](x0) = x0 + 1,
        
        [s](x0) = x0,
        
        [a__length](x0) = x0 + 1,
        
        [mark](x0) = x0,
        
        [a__U62](x0, x1) = x0 + x1 + 1,
        
        [a__isNat](x0) = 0,
        
        [a__U61](x0, x1, x2) = x0 + x1 + x2 + 1,
        
        [a__U52](x0) = x0,
        
        [a__isNatList](x0) = 0,
        
        [a__U51](x0, x1) = x0,
        
        [a__U42](x0) = x0,
        
        [a__isNatIList](x0) = 0,
        
        [a__U41](x0, x1) = 0,
        
        [a__U31](x0) = 0,
        
        [a__U21](x0) = x0,
        
        [a__U11](x0) = x0,
        
        [tt] = 0,
        
        [cons](x0, x1) = x0 + x1,
        
        [zeros] = 0,
        
        [0] = 0,
        
        [a__zeros] = 0
       orientation:
        a__length#(cons(N,L)) = L + N >= L + N = a__U61#(a__isNatList(L),L,N)
        
        a__U61#(tt(),L,N) = L + N >= L = a__U62#(a__isNat(N),L)
        
        a__U62#(tt(),L) = L >= L = a__length#(mark(L))
        
        a__U62#(tt(),L) = L >= L = mark#(L)
        
        mark#(s(X)) = X >= X = mark#(X)
        
        mark#(cons(X1,X2)) = X1 + X2 >= X1 = mark#(X1)
        
        mark#(length(X)) = X + 1 >= X = a__length#(mark(X))
        
        mark#(length(X)) = X + 1 >= X = mark#(X)
        
        mark#(U62(X1,X2)) = X1 + X2 + 1 >= X2 = a__U62#(mark(X1),X2)
        
        mark#(U62(X1,X2)) = X1 + X2 + 1 >= X1 = mark#(X1)
        
        mark#(U61(X1,X2,X3)) = X1 + X2 + X3 + 1 >= X2 + X3 = a__U61#(mark(X1),X2,X3)
        
        mark#(U61(X1,X2,X3)) = X1 + X2 + X3 + 1 >= X1 = mark#(X1)
        
        mark#(U52(X)) = X >= X = mark#(X)
        
        mark#(U51(X1,X2)) = X1 >= X1 = mark#(X1)
        
        mark#(U42(X)) = X >= X = mark#(X)
        
        mark#(U21(X)) = X >= X = mark#(X)
        
        mark#(U11(X)) = X >= X = mark#(X)
        
        a__zeros() = 0 >= 0 = cons(0(),zeros())
        
        a__U11(tt()) = 0 >= 0 = tt()
        
        a__U21(tt()) = 0 >= 0 = tt()
        
        a__U31(tt()) = 0 >= 0 = tt()
        
        a__U41(tt(),V2) = 0 >= 0 = a__U42(a__isNatIList(V2))
        
        a__U42(tt()) = 0 >= 0 = tt()
        
        a__U51(tt(),V2) = 0 >= 0 = a__U52(a__isNatList(V2))
        
        a__U52(tt()) = 0 >= 0 = tt()
        
        a__U61(tt(),L,N) = L + N + 1 >= L + 1 = a__U62(a__isNat(N),L)
        
        a__U62(tt(),L) = L + 1 >= L + 1 = s(a__length(mark(L)))
        
        a__isNat(0()) = 0 >= 0 = tt()
        
        a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
        
        a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
        
        a__isNatIList(V) = 0 >= 0 = a__U31(a__isNatList(V))
        
        a__isNatIList(zeros()) = 0 >= 0 = tt()
        
        a__isNatIList(cons(V1,V2)) = 0 >= 0 = a__U41(a__isNat(V1),V2)
        
        a__isNatList(nil()) = 0 >= 0 = tt()
        
        a__isNatList(cons(V1,V2)) = 0 >= 0 = a__U51(a__isNat(V1),V2)
        
        a__length(nil()) = 1 >= 0 = 0()
        
        a__length(cons(N,L)) = L + N + 1 >= L + N + 1 = a__U61(a__isNatList(L),L,N)
        
        mark(zeros()) = 0 >= 0 = a__zeros()
        
        mark(U11(X)) = X >= X = a__U11(mark(X))
        
        mark(U21(X)) = X >= X = a__U21(mark(X))
        
        mark(U31(X)) = 0 >= 0 = a__U31(mark(X))
        
        mark(U41(X1,X2)) = 0 >= 0 = a__U41(mark(X1),X2)
        
        mark(U42(X)) = X >= X = a__U42(mark(X))
        
        mark(isNatIList(X)) = 0 >= 0 = a__isNatIList(X)
        
        mark(U51(X1,X2)) = X1 >= X1 = a__U51(mark(X1),X2)
        
        mark(U52(X)) = X >= X = a__U52(mark(X))
        
        mark(isNatList(X)) = 0 >= 0 = a__isNatList(X)
        
        mark(U61(X1,X2,X3)) = X1 + X2 + X3 + 1 >= X1 + X2 + X3 + 1 = a__U61(mark(X1),X2,X3)
        
        mark(U62(X1,X2)) = X1 + X2 + 1 >= X1 + X2 + 1 = a__U62(mark(X1),X2)
        
        mark(isNat(X)) = 0 >= 0 = a__isNat(X)
        
        mark(length(X)) = X + 1 >= X + 1 = a__length(mark(X))
        
        mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(mark(X1),X2)
        
        mark(0()) = 0 >= 0 = 0()
        
        mark(tt()) = 0 >= 0 = tt()
        
        mark(s(X)) = X >= X = s(mark(X))
        
        mark(nil()) = 0 >= 0 = nil()
        
        a__zeros() = 0 >= 0 = zeros()
        
        a__U11(X) = X >= X = U11(X)
        
        a__U21(X) = X >= X = U21(X)
        
        a__U31(X) = 0 >= 0 = U31(X)
        
        a__U41(X1,X2) = 0 >= 0 = U41(X1,X2)
        
        a__U42(X) = X >= X = U42(X)
        
        a__isNatIList(X) = 0 >= 0 = isNatIList(X)
        
        a__U51(X1,X2) = X1 >= X1 = U51(X1,X2)
        
        a__U52(X) = X >= X = U52(X)
        
        a__isNatList(X) = 0 >= 0 = isNatList(X)
        
        a__U61(X1,X2,X3) = X1 + X2 + X3 + 1 >= X1 + X2 + X3 + 1 = U61(X1,X2,X3)
        
        a__U62(X1,X2) = X1 + X2 + 1 >= X1 + X2 + 1 = U62(X1,X2)
        
        a__isNat(X) = 0 >= 0 = isNat(X)
        
        a__length(X) = X + 1 >= X + 1 = length(X)
       problem:
        DPs:
         a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
         a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
         a__U62#(tt(),L) -> a__length#(mark(L))
         a__U62#(tt(),L) -> mark#(L)
         mark#(s(X)) -> mark#(X)
         mark#(cons(X1,X2)) -> mark#(X1)
         mark#(U52(X)) -> mark#(X)
         mark#(U51(X1,X2)) -> mark#(X1)
         mark#(U42(X)) -> mark#(X)
         mark#(U21(X)) -> mark#(X)
         mark#(U11(X)) -> mark#(X)
        TRS:
         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(),L,N) -> a__U62(a__isNat(N),L)
         a__U62(tt(),L) -> s(a__length(mark(L)))
         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__length(nil()) -> 0()
         a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
         mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
         mark(isNat(X)) -> a__isNat(X)
         mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
         a__U62(X1,X2) -> U62(X1,X2)
         a__isNat(X) -> isNat(X)
         a__length(X) -> length(X)
       Matrix Interpretation Processor:
        dimension: 1
        interpretation:
         [a__length#](x0) = x0 + 1,
         
         [mark#](x0) = 0,
         
         [a__U62#](x0, x1) = x0 + 1,
         
         [a__U61#](x0, x1, x2) = x0 + 1,
         
         [isNat](x0) = 1,
         
         [U62](x0, x1) = 1,
         
         [U61](x0, x1, x2) = 1,
         
         [isNatList](x0) = 1,
         
         [U52](x0) = 1,
         
         [U51](x0, x1) = 1,
         
         [isNatIList](x0) = 1,
         
         [U42](x0) = 1,
         
         [U41](x0, x1) = 1,
         
         [U31](x0) = x0,
         
         [U21](x0) = 1,
         
         [U11](x0) = 1,
         
         [nil] = 1,
         
         [length](x0) = 1,
         
         [s](x0) = 1,
         
         [a__length](x0) = 1,
         
         [mark](x0) = 1,
         
         [a__U62](x0, x1) = 1,
         
         [a__isNat](x0) = 1,
         
         [a__U61](x0, x1, x2) = 1,
         
         [a__U52](x0) = 1,
         
         [a__isNatList](x0) = 1,
         
         [a__U51](x0, x1) = 1,
         
         [a__U42](x0) = 1,
         
         [a__isNatIList](x0) = 1,
         
         [a__U41](x0, x1) = 1,
         
         [a__U31](x0) = x0,
         
         [a__U21](x0) = 1,
         
         [a__U11](x0) = 1,
         
         [tt] = 1,
         
         [cons](x0, x1) = 1,
         
         [zeros] = 1,
         
         [0] = 1,
         
         [a__zeros] = 1
        orientation:
         a__length#(cons(N,L)) = 2 >= 2 = a__U61#(a__isNatList(L),L,N)
         
         a__U61#(tt(),L,N) = 2 >= 2 = a__U62#(a__isNat(N),L)
         
         a__U62#(tt(),L) = 2 >= 2 = a__length#(mark(L))
         
         a__U62#(tt(),L) = 2 >= 0 = mark#(L)
         
         mark#(s(X)) = 0 >= 0 = mark#(X)
         
         mark#(cons(X1,X2)) = 0 >= 0 = mark#(X1)
         
         mark#(U52(X)) = 0 >= 0 = mark#(X)
         
         mark#(U51(X1,X2)) = 0 >= 0 = mark#(X1)
         
         mark#(U42(X)) = 0 >= 0 = mark#(X)
         
         mark#(U21(X)) = 0 >= 0 = mark#(X)
         
         mark#(U11(X)) = 0 >= 0 = mark#(X)
         
         a__zeros() = 1 >= 1 = cons(0(),zeros())
         
         a__U11(tt()) = 1 >= 1 = tt()
         
         a__U21(tt()) = 1 >= 1 = tt()
         
         a__U31(tt()) = 1 >= 1 = tt()
         
         a__U41(tt(),V2) = 1 >= 1 = a__U42(a__isNatIList(V2))
         
         a__U42(tt()) = 1 >= 1 = tt()
         
         a__U51(tt(),V2) = 1 >= 1 = a__U52(a__isNatList(V2))
         
         a__U52(tt()) = 1 >= 1 = tt()
         
         a__U61(tt(),L,N) = 1 >= 1 = a__U62(a__isNat(N),L)
         
         a__U62(tt(),L) = 1 >= 1 = s(a__length(mark(L)))
         
         a__isNat(0()) = 1 >= 1 = tt()
         
         a__isNat(length(V1)) = 1 >= 1 = a__U11(a__isNatList(V1))
         
         a__isNat(s(V1)) = 1 >= 1 = a__U21(a__isNat(V1))
         
         a__isNatIList(V) = 1 >= 1 = a__U31(a__isNatList(V))
         
         a__isNatIList(zeros()) = 1 >= 1 = tt()
         
         a__isNatIList(cons(V1,V2)) = 1 >= 1 = a__U41(a__isNat(V1),V2)
         
         a__isNatList(nil()) = 1 >= 1 = tt()
         
         a__isNatList(cons(V1,V2)) = 1 >= 1 = a__U51(a__isNat(V1),V2)
         
         a__length(nil()) = 1 >= 1 = 0()
         
         a__length(cons(N,L)) = 1 >= 1 = a__U61(a__isNatList(L),L,N)
         
         mark(zeros()) = 1 >= 1 = a__zeros()
         
         mark(U11(X)) = 1 >= 1 = a__U11(mark(X))
         
         mark(U21(X)) = 1 >= 1 = a__U21(mark(X))
         
         mark(U31(X)) = 1 >= 1 = a__U31(mark(X))
         
         mark(U41(X1,X2)) = 1 >= 1 = a__U41(mark(X1),X2)
         
         mark(U42(X)) = 1 >= 1 = a__U42(mark(X))
         
         mark(isNatIList(X)) = 1 >= 1 = a__isNatIList(X)
         
         mark(U51(X1,X2)) = 1 >= 1 = a__U51(mark(X1),X2)
         
         mark(U52(X)) = 1 >= 1 = a__U52(mark(X))
         
         mark(isNatList(X)) = 1 >= 1 = a__isNatList(X)
         
         mark(U61(X1,X2,X3)) = 1 >= 1 = a__U61(mark(X1),X2,X3)
         
         mark(U62(X1,X2)) = 1 >= 1 = a__U62(mark(X1),X2)
         
         mark(isNat(X)) = 1 >= 1 = a__isNat(X)
         
         mark(length(X)) = 1 >= 1 = a__length(mark(X))
         
         mark(cons(X1,X2)) = 1 >= 1 = cons(mark(X1),X2)
         
         mark(0()) = 1 >= 1 = 0()
         
         mark(tt()) = 1 >= 1 = tt()
         
         mark(s(X)) = 1 >= 1 = s(mark(X))
         
         mark(nil()) = 1 >= 1 = nil()
         
         a__zeros() = 1 >= 1 = zeros()
         
         a__U11(X) = 1 >= 1 = U11(X)
         
         a__U21(X) = 1 >= 1 = U21(X)
         
         a__U31(X) = X >= X = U31(X)
         
         a__U41(X1,X2) = 1 >= 1 = U41(X1,X2)
         
         a__U42(X) = 1 >= 1 = U42(X)
         
         a__isNatIList(X) = 1 >= 1 = isNatIList(X)
         
         a__U51(X1,X2) = 1 >= 1 = U51(X1,X2)
         
         a__U52(X) = 1 >= 1 = U52(X)
         
         a__isNatList(X) = 1 >= 1 = isNatList(X)
         
         a__U61(X1,X2,X3) = 1 >= 1 = U61(X1,X2,X3)
         
         a__U62(X1,X2) = 1 >= 1 = U62(X1,X2)
         
         a__isNat(X) = 1 >= 1 = isNat(X)
         
         a__length(X) = 1 >= 1 = length(X)
        problem:
         DPs:
          a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
          a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
          a__U62#(tt(),L) -> a__length#(mark(L))
          mark#(s(X)) -> mark#(X)
          mark#(cons(X1,X2)) -> mark#(X1)
          mark#(U52(X)) -> mark#(X)
          mark#(U51(X1,X2)) -> mark#(X1)
          mark#(U42(X)) -> mark#(X)
          mark#(U21(X)) -> mark#(X)
          mark#(U11(X)) -> mark#(X)
         TRS:
          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(),L,N) -> a__U62(a__isNat(N),L)
          a__U62(tt(),L) -> s(a__length(mark(L)))
          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__length(nil()) -> 0()
          a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
          mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
          mark(isNat(X)) -> a__isNat(X)
          mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
          a__U62(X1,X2) -> U62(X1,X2)
          a__isNat(X) -> isNat(X)
          a__length(X) -> length(X)
        Matrix Interpretation Processor:
         dimension: 1
         interpretation:
          [a__length#](x0) = 0,
          
          [mark#](x0) = x0 + 1,
          
          [a__U62#](x0, x1) = 0,
          
          [a__U61#](x0, x1, x2) = 0,
          
          [isNat](x0) = x0,
          
          [U62](x0, x1) = x1 + 1,
          
          [U61](x0, x1, x2) = x1 + 1,
          
          [isNatList](x0) = x0,
          
          [U52](x0) = x0,
          
          [U51](x0, x1) = x0 + x1,
          
          [isNatIList](x0) = x0,
          
          [U42](x0) = x0,
          
          [U41](x0, x1) = x1,
          
          [U31](x0) = 0,
          
          [U21](x0) = x0,
          
          [U11](x0) = x0 + 1,
          
          [nil] = 0,
          
          [length](x0) = x0 + 1,
          
          [s](x0) = x0,
          
          [a__length](x0) = x0 + 1,
          
          [mark](x0) = x0,
          
          [a__U62](x0, x1) = x1 + 1,
          
          [a__isNat](x0) = x0,
          
          [a__U61](x0, x1, x2) = x1 + 1,
          
          [a__U52](x0) = x0,
          
          [a__isNatList](x0) = x0,
          
          [a__U51](x0, x1) = x0 + x1,
          
          [a__U42](x0) = x0,
          
          [a__isNatIList](x0) = x0,
          
          [a__U41](x0, x1) = x1,
          
          [a__U31](x0) = 0,
          
          [a__U21](x0) = x0,
          
          [a__U11](x0) = x0 + 1,
          
          [tt] = 0,
          
          [cons](x0, x1) = x0 + x1,
          
          [zeros] = 0,
          
          [0] = 0,
          
          [a__zeros] = 0
         orientation:
          a__length#(cons(N,L)) = 0 >= 0 = a__U61#(a__isNatList(L),L,N)
          
          a__U61#(tt(),L,N) = 0 >= 0 = a__U62#(a__isNat(N),L)
          
          a__U62#(tt(),L) = 0 >= 0 = a__length#(mark(L))
          
          mark#(s(X)) = X + 1 >= X + 1 = mark#(X)
          
          mark#(cons(X1,X2)) = X1 + X2 + 1 >= X1 + 1 = mark#(X1)
          
          mark#(U52(X)) = X + 1 >= X + 1 = mark#(X)
          
          mark#(U51(X1,X2)) = X1 + X2 + 1 >= X1 + 1 = mark#(X1)
          
          mark#(U42(X)) = X + 1 >= X + 1 = mark#(X)
          
          mark#(U21(X)) = X + 1 >= X + 1 = mark#(X)
          
          mark#(U11(X)) = X + 2 >= X + 1 = mark#(X)
          
          a__zeros() = 0 >= 0 = cons(0(),zeros())
          
          a__U11(tt()) = 1 >= 0 = tt()
          
          a__U21(tt()) = 0 >= 0 = tt()
          
          a__U31(tt()) = 0 >= 0 = tt()
          
          a__U41(tt(),V2) = V2 >= V2 = a__U42(a__isNatIList(V2))
          
          a__U42(tt()) = 0 >= 0 = tt()
          
          a__U51(tt(),V2) = V2 >= V2 = a__U52(a__isNatList(V2))
          
          a__U52(tt()) = 0 >= 0 = tt()
          
          a__U61(tt(),L,N) = L + 1 >= L + 1 = a__U62(a__isNat(N),L)
          
          a__U62(tt(),L) = L + 1 >= L + 1 = s(a__length(mark(L)))
          
          a__isNat(0()) = 0 >= 0 = tt()
          
          a__isNat(length(V1)) = V1 + 1 >= V1 + 1 = a__U11(a__isNatList(V1))
          
          a__isNat(s(V1)) = V1 >= V1 = a__U21(a__isNat(V1))
          
          a__isNatIList(V) = V >= 0 = a__U31(a__isNatList(V))
          
          a__isNatIList(zeros()) = 0 >= 0 = tt()
          
          a__isNatIList(cons(V1,V2)) = V1 + V2 >= V2 = a__U41(a__isNat(V1),V2)
          
          a__isNatList(nil()) = 0 >= 0 = tt()
          
          a__isNatList(cons(V1,V2)) = V1 + V2 >= V1 + V2 = a__U51(a__isNat(V1),V2)
          
          a__length(nil()) = 1 >= 0 = 0()
          
          a__length(cons(N,L)) = L + N + 1 >= L + 1 = a__U61(a__isNatList(L),L,N)
          
          mark(zeros()) = 0 >= 0 = a__zeros()
          
          mark(U11(X)) = X + 1 >= X + 1 = a__U11(mark(X))
          
          mark(U21(X)) = X >= X = a__U21(mark(X))
          
          mark(U31(X)) = 0 >= 0 = a__U31(mark(X))
          
          mark(U41(X1,X2)) = X2 >= X2 = a__U41(mark(X1),X2)
          
          mark(U42(X)) = X >= X = a__U42(mark(X))
          
          mark(isNatIList(X)) = X >= X = a__isNatIList(X)
          
          mark(U51(X1,X2)) = X1 + X2 >= X1 + X2 = a__U51(mark(X1),X2)
          
          mark(U52(X)) = X >= X = a__U52(mark(X))
          
          mark(isNatList(X)) = X >= X = a__isNatList(X)
          
          mark(U61(X1,X2,X3)) = X2 + 1 >= X2 + 1 = a__U61(mark(X1),X2,X3)
          
          mark(U62(X1,X2)) = X2 + 1 >= X2 + 1 = a__U62(mark(X1),X2)
          
          mark(isNat(X)) = X >= X = a__isNat(X)
          
          mark(length(X)) = X + 1 >= X + 1 = a__length(mark(X))
          
          mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(mark(X1),X2)
          
          mark(0()) = 0 >= 0 = 0()
          
          mark(tt()) = 0 >= 0 = tt()
          
          mark(s(X)) = X >= X = s(mark(X))
          
          mark(nil()) = 0 >= 0 = nil()
          
          a__zeros() = 0 >= 0 = zeros()
          
          a__U11(X) = X + 1 >= X + 1 = U11(X)
          
          a__U21(X) = X >= X = U21(X)
          
          a__U31(X) = 0 >= 0 = U31(X)
          
          a__U41(X1,X2) = X2 >= X2 = U41(X1,X2)
          
          a__U42(X) = X >= X = U42(X)
          
          a__isNatIList(X) = X >= X = isNatIList(X)
          
          a__U51(X1,X2) = X1 + X2 >= X1 + X2 = U51(X1,X2)
          
          a__U52(X) = X >= X = U52(X)
          
          a__isNatList(X) = X >= X = isNatList(X)
          
          a__U61(X1,X2,X3) = X2 + 1 >= X2 + 1 = U61(X1,X2,X3)
          
          a__U62(X1,X2) = X2 + 1 >= X2 + 1 = U62(X1,X2)
          
          a__isNat(X) = X >= X = isNat(X)
          
          a__length(X) = X + 1 >= X + 1 = length(X)
         problem:
          DPs:
           a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
           a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
           a__U62#(tt(),L) -> a__length#(mark(L))
           mark#(s(X)) -> mark#(X)
           mark#(cons(X1,X2)) -> mark#(X1)
           mark#(U52(X)) -> mark#(X)
           mark#(U51(X1,X2)) -> mark#(X1)
           mark#(U42(X)) -> mark#(X)
           mark#(U21(X)) -> mark#(X)
          TRS:
           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(),L,N) -> a__U62(a__isNat(N),L)
           a__U62(tt(),L) -> s(a__length(mark(L)))
           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__length(nil()) -> 0()
           a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
           mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
           mark(isNat(X)) -> a__isNat(X)
           mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
           a__U62(X1,X2) -> U62(X1,X2)
           a__isNat(X) -> isNat(X)
           a__length(X) -> length(X)
         Matrix Interpretation Processor:
          dimension: 1
          interpretation:
           [a__length#](x0) = x0,
           
           [mark#](x0) = x0,
           
           [a__U62#](x0, x1) = x1,
           
           [a__U61#](x0, x1, x2) = x1 + x2,
           
           [isNat](x0) = 0,
           
           [U62](x0, x1) = x1,
           
           [U61](x0, x1, x2) = x1,
           
           [isNatList](x0) = 1,
           
           [U52](x0) = x0,
           
           [U51](x0, x1) = x0 + 1,
           
           [isNatIList](x0) = 0,
           
           [U42](x0) = x0,
           
           [U41](x0, x1) = 0,
           
           [U31](x0) = 0,
           
           [U21](x0) = x0,
           
           [U11](x0) = 0,
           
           [nil] = 0,
           
           [length](x0) = x0,
           
           [s](x0) = x0,
           
           [a__length](x0) = x0,
           
           [mark](x0) = x0,
           
           [a__U62](x0, x1) = x1,
           
           [a__isNat](x0) = 0,
           
           [a__U61](x0, x1, x2) = x1,
           
           [a__U52](x0) = x0,
           
           [a__isNatList](x0) = 1,
           
           [a__U51](x0, x1) = x0 + 1,
           
           [a__U42](x0) = x0,
           
           [a__isNatIList](x0) = 0,
           
           [a__U41](x0, x1) = 0,
           
           [a__U31](x0) = 0,
           
           [a__U21](x0) = x0,
           
           [a__U11](x0) = 0,
           
           [tt] = 0,
           
           [cons](x0, x1) = x0 + x1,
           
           [zeros] = 1,
           
           [0] = 0,
           
           [a__zeros] = 1
          orientation:
           a__length#(cons(N,L)) = L + N >= L + N = a__U61#(a__isNatList(L),L,N)
           
           a__U61#(tt(),L,N) = L + N >= L = a__U62#(a__isNat(N),L)
           
           a__U62#(tt(),L) = L >= L = a__length#(mark(L))
           
           mark#(s(X)) = X >= X = mark#(X)
           
           mark#(cons(X1,X2)) = X1 + X2 >= X1 = mark#(X1)
           
           mark#(U52(X)) = X >= X = mark#(X)
           
           mark#(U51(X1,X2)) = X1 + 1 >= X1 = mark#(X1)
           
           mark#(U42(X)) = X >= X = mark#(X)
           
           mark#(U21(X)) = X >= X = mark#(X)
           
           a__zeros() = 1 >= 1 = cons(0(),zeros())
           
           a__U11(tt()) = 0 >= 0 = tt()
           
           a__U21(tt()) = 0 >= 0 = tt()
           
           a__U31(tt()) = 0 >= 0 = tt()
           
           a__U41(tt(),V2) = 0 >= 0 = a__U42(a__isNatIList(V2))
           
           a__U42(tt()) = 0 >= 0 = tt()
           
           a__U51(tt(),V2) = 1 >= 1 = a__U52(a__isNatList(V2))
           
           a__U52(tt()) = 0 >= 0 = tt()
           
           a__U61(tt(),L,N) = L >= L = a__U62(a__isNat(N),L)
           
           a__U62(tt(),L) = L >= L = s(a__length(mark(L)))
           
           a__isNat(0()) = 0 >= 0 = tt()
           
           a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
           
           a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
           
           a__isNatIList(V) = 0 >= 0 = a__U31(a__isNatList(V))
           
           a__isNatIList(zeros()) = 0 >= 0 = tt()
           
           a__isNatIList(cons(V1,V2)) = 0 >= 0 = a__U41(a__isNat(V1),V2)
           
           a__isNatList(nil()) = 1 >= 0 = tt()
           
           a__isNatList(cons(V1,V2)) = 1 >= 1 = a__U51(a__isNat(V1),V2)
           
           a__length(nil()) = 0 >= 0 = 0()
           
           a__length(cons(N,L)) = L + N >= L = a__U61(a__isNatList(L),L,N)
           
           mark(zeros()) = 1 >= 1 = a__zeros()
           
           mark(U11(X)) = 0 >= 0 = a__U11(mark(X))
           
           mark(U21(X)) = X >= X = a__U21(mark(X))
           
           mark(U31(X)) = 0 >= 0 = a__U31(mark(X))
           
           mark(U41(X1,X2)) = 0 >= 0 = a__U41(mark(X1),X2)
           
           mark(U42(X)) = X >= X = a__U42(mark(X))
           
           mark(isNatIList(X)) = 0 >= 0 = a__isNatIList(X)
           
           mark(U51(X1,X2)) = X1 + 1 >= X1 + 1 = a__U51(mark(X1),X2)
           
           mark(U52(X)) = X >= X = a__U52(mark(X))
           
           mark(isNatList(X)) = 1 >= 1 = a__isNatList(X)
           
           mark(U61(X1,X2,X3)) = X2 >= X2 = a__U61(mark(X1),X2,X3)
           
           mark(U62(X1,X2)) = X2 >= X2 = a__U62(mark(X1),X2)
           
           mark(isNat(X)) = 0 >= 0 = a__isNat(X)
           
           mark(length(X)) = X >= X = a__length(mark(X))
           
           mark(cons(X1,X2)) = X1 + X2 >= X1 + X2 = cons(mark(X1),X2)
           
           mark(0()) = 0 >= 0 = 0()
           
           mark(tt()) = 0 >= 0 = tt()
           
           mark(s(X)) = X >= X = s(mark(X))
           
           mark(nil()) = 0 >= 0 = nil()
           
           a__zeros() = 1 >= 1 = zeros()
           
           a__U11(X) = 0 >= 0 = U11(X)
           
           a__U21(X) = X >= X = U21(X)
           
           a__U31(X) = 0 >= 0 = U31(X)
           
           a__U41(X1,X2) = 0 >= 0 = U41(X1,X2)
           
           a__U42(X) = X >= X = U42(X)
           
           a__isNatIList(X) = 0 >= 0 = isNatIList(X)
           
           a__U51(X1,X2) = X1 + 1 >= X1 + 1 = U51(X1,X2)
           
           a__U52(X) = X >= X = U52(X)
           
           a__isNatList(X) = 1 >= 1 = isNatList(X)
           
           a__U61(X1,X2,X3) = X2 >= X2 = U61(X1,X2,X3)
           
           a__U62(X1,X2) = X2 >= X2 = U62(X1,X2)
           
           a__isNat(X) = 0 >= 0 = isNat(X)
           
           a__length(X) = X >= X = length(X)
          problem:
           DPs:
            a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
            a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
            a__U62#(tt(),L) -> a__length#(mark(L))
            mark#(s(X)) -> mark#(X)
            mark#(cons(X1,X2)) -> mark#(X1)
            mark#(U52(X)) -> mark#(X)
            mark#(U42(X)) -> mark#(X)
            mark#(U21(X)) -> mark#(X)
           TRS:
            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(),L,N) -> a__U62(a__isNat(N),L)
            a__U62(tt(),L) -> s(a__length(mark(L)))
            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__length(nil()) -> 0()
            a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
            mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
            mark(isNat(X)) -> a__isNat(X)
            mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
            a__U62(X1,X2) -> U62(X1,X2)
            a__isNat(X) -> isNat(X)
            a__length(X) -> length(X)
          Matrix Interpretation Processor:
           dimension: 1
           interpretation:
            [a__length#](x0) = 0,
            
            [mark#](x0) = x0,
            
            [a__U62#](x0, x1) = 0,
            
            [a__U61#](x0, x1, x2) = 0,
            
            [isNat](x0) = 0,
            
            [U62](x0, x1) = 1,
            
            [U61](x0, x1, x2) = 1,
            
            [isNatList](x0) = 0,
            
            [U52](x0) = x0,
            
            [U51](x0, x1) = 0,
            
            [isNatIList](x0) = 0,
            
            [U42](x0) = x0,
            
            [U41](x0, x1) = 0,
            
            [U31](x0) = 0,
            
            [U21](x0) = x0,
            
            [U11](x0) = 0,
            
            [nil] = 0,
            
            [length](x0) = 1,
            
            [s](x0) = x0,
            
            [a__length](x0) = 1,
            
            [mark](x0) = x0,
            
            [a__U62](x0, x1) = 1,
            
            [a__isNat](x0) = 0,
            
            [a__U61](x0, x1, x2) = 1,
            
            [a__U52](x0) = x0,
            
            [a__isNatList](x0) = 0,
            
            [a__U51](x0, x1) = 0,
            
            [a__U42](x0) = x0,
            
            [a__isNatIList](x0) = 0,
            
            [a__U41](x0, x1) = 0,
            
            [a__U31](x0) = 0,
            
            [a__U21](x0) = x0,
            
            [a__U11](x0) = 0,
            
            [tt] = 0,
            
            [cons](x0, x1) = x0 + 1,
            
            [zeros] = 1,
            
            [0] = 0,
            
            [a__zeros] = 1
           orientation:
            a__length#(cons(N,L)) = 0 >= 0 = a__U61#(a__isNatList(L),L,N)
            
            a__U61#(tt(),L,N) = 0 >= 0 = a__U62#(a__isNat(N),L)
            
            a__U62#(tt(),L) = 0 >= 0 = a__length#(mark(L))
            
            mark#(s(X)) = X >= X = mark#(X)
            
            mark#(cons(X1,X2)) = X1 + 1 >= X1 = mark#(X1)
            
            mark#(U52(X)) = X >= X = mark#(X)
            
            mark#(U42(X)) = X >= X = mark#(X)
            
            mark#(U21(X)) = X >= X = mark#(X)
            
            a__zeros() = 1 >= 1 = cons(0(),zeros())
            
            a__U11(tt()) = 0 >= 0 = tt()
            
            a__U21(tt()) = 0 >= 0 = tt()
            
            a__U31(tt()) = 0 >= 0 = tt()
            
            a__U41(tt(),V2) = 0 >= 0 = a__U42(a__isNatIList(V2))
            
            a__U42(tt()) = 0 >= 0 = tt()
            
            a__U51(tt(),V2) = 0 >= 0 = a__U52(a__isNatList(V2))
            
            a__U52(tt()) = 0 >= 0 = tt()
            
            a__U61(tt(),L,N) = 1 >= 1 = a__U62(a__isNat(N),L)
            
            a__U62(tt(),L) = 1 >= 1 = s(a__length(mark(L)))
            
            a__isNat(0()) = 0 >= 0 = tt()
            
            a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
            
            a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
            
            a__isNatIList(V) = 0 >= 0 = a__U31(a__isNatList(V))
            
            a__isNatIList(zeros()) = 0 >= 0 = tt()
            
            a__isNatIList(cons(V1,V2)) = 0 >= 0 = a__U41(a__isNat(V1),V2)
            
            a__isNatList(nil()) = 0 >= 0 = tt()
            
            a__isNatList(cons(V1,V2)) = 0 >= 0 = a__U51(a__isNat(V1),V2)
            
            a__length(nil()) = 1 >= 0 = 0()
            
            a__length(cons(N,L)) = 1 >= 1 = a__U61(a__isNatList(L),L,N)
            
            mark(zeros()) = 1 >= 1 = a__zeros()
            
            mark(U11(X)) = 0 >= 0 = a__U11(mark(X))
            
            mark(U21(X)) = X >= X = a__U21(mark(X))
            
            mark(U31(X)) = 0 >= 0 = a__U31(mark(X))
            
            mark(U41(X1,X2)) = 0 >= 0 = a__U41(mark(X1),X2)
            
            mark(U42(X)) = X >= X = a__U42(mark(X))
            
            mark(isNatIList(X)) = 0 >= 0 = a__isNatIList(X)
            
            mark(U51(X1,X2)) = 0 >= 0 = a__U51(mark(X1),X2)
            
            mark(U52(X)) = X >= X = a__U52(mark(X))
            
            mark(isNatList(X)) = 0 >= 0 = a__isNatList(X)
            
            mark(U61(X1,X2,X3)) = 1 >= 1 = a__U61(mark(X1),X2,X3)
            
            mark(U62(X1,X2)) = 1 >= 1 = a__U62(mark(X1),X2)
            
            mark(isNat(X)) = 0 >= 0 = a__isNat(X)
            
            mark(length(X)) = 1 >= 1 = a__length(mark(X))
            
            mark(cons(X1,X2)) = X1 + 1 >= X1 + 1 = cons(mark(X1),X2)
            
            mark(0()) = 0 >= 0 = 0()
            
            mark(tt()) = 0 >= 0 = tt()
            
            mark(s(X)) = X >= X = s(mark(X))
            
            mark(nil()) = 0 >= 0 = nil()
            
            a__zeros() = 1 >= 1 = zeros()
            
            a__U11(X) = 0 >= 0 = U11(X)
            
            a__U21(X) = X >= X = U21(X)
            
            a__U31(X) = 0 >= 0 = U31(X)
            
            a__U41(X1,X2) = 0 >= 0 = U41(X1,X2)
            
            a__U42(X) = X >= X = U42(X)
            
            a__isNatIList(X) = 0 >= 0 = isNatIList(X)
            
            a__U51(X1,X2) = 0 >= 0 = U51(X1,X2)
            
            a__U52(X) = X >= X = U52(X)
            
            a__isNatList(X) = 0 >= 0 = isNatList(X)
            
            a__U61(X1,X2,X3) = 1 >= 1 = U61(X1,X2,X3)
            
            a__U62(X1,X2) = 1 >= 1 = U62(X1,X2)
            
            a__isNat(X) = 0 >= 0 = isNat(X)
            
            a__length(X) = 1 >= 1 = length(X)
           problem:
            DPs:
             a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
             a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
             a__U62#(tt(),L) -> a__length#(mark(L))
             mark#(s(X)) -> mark#(X)
             mark#(U52(X)) -> mark#(X)
             mark#(U42(X)) -> mark#(X)
             mark#(U21(X)) -> mark#(X)
            TRS:
             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(),L,N) -> a__U62(a__isNat(N),L)
             a__U62(tt(),L) -> s(a__length(mark(L)))
             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__length(nil()) -> 0()
             a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
             mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
             mark(isNat(X)) -> a__isNat(X)
             mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
             a__U62(X1,X2) -> U62(X1,X2)
             a__isNat(X) -> isNat(X)
             a__length(X) -> length(X)
           Matrix Interpretation Processor:
            dimension: 1
            interpretation:
             [a__length#](x0) = x0,
             
             [mark#](x0) = x0,
             
             [a__U62#](x0, x1) = x1 + 1,
             
             [a__U61#](x0, x1, x2) = x1 + 1,
             
             [isNat](x0) = 0,
             
             [U62](x0, x1) = 0,
             
             [U61](x0, x1, x2) = 0,
             
             [isNatList](x0) = x0,
             
             [U52](x0) = x0 + 1,
             
             [U51](x0, x1) = x1 + 1,
             
             [isNatIList](x0) = 0,
             
             [U42](x0) = x0,
             
             [U41](x0, x1) = 0,
             
             [U31](x0) = 0,
             
             [U21](x0) = x0,
             
             [U11](x0) = 0,
             
             [nil] = 0,
             
             [length](x0) = 0,
             
             [s](x0) = x0,
             
             [a__length](x0) = 0,
             
             [mark](x0) = x0 + 1,
             
             [a__U62](x0, x1) = 0,
             
             [a__isNat](x0) = 0,
             
             [a__U61](x0, x1, x2) = 0,
             
             [a__U52](x0) = x0 + 1,
             
             [a__isNatList](x0) = x0,
             
             [a__U51](x0, x1) = x1 + 1,
             
             [a__U42](x0) = x0,
             
             [a__isNatIList](x0) = 0,
             
             [a__U41](x0, x1) = 0,
             
             [a__U31](x0) = 0,
             
             [a__U21](x0) = x0,
             
             [a__U11](x0) = 0,
             
             [tt] = 0,
             
             [cons](x0, x1) = x1 + 1,
             
             [zeros] = 0,
             
             [0] = 0,
             
             [a__zeros] = 1
            orientation:
             a__length#(cons(N,L)) = L + 1 >= L + 1 = a__U61#(a__isNatList(L),L,N)
             
             a__U61#(tt(),L,N) = L + 1 >= L + 1 = a__U62#(a__isNat(N),L)
             
             a__U62#(tt(),L) = L + 1 >= L + 1 = a__length#(mark(L))
             
             mark#(s(X)) = X >= X = mark#(X)
             
             mark#(U52(X)) = X + 1 >= X = mark#(X)
             
             mark#(U42(X)) = X >= X = mark#(X)
             
             mark#(U21(X)) = X >= X = mark#(X)
             
             a__zeros() = 1 >= 1 = cons(0(),zeros())
             
             a__U11(tt()) = 0 >= 0 = tt()
             
             a__U21(tt()) = 0 >= 0 = tt()
             
             a__U31(tt()) = 0 >= 0 = tt()
             
             a__U41(tt(),V2) = 0 >= 0 = a__U42(a__isNatIList(V2))
             
             a__U42(tt()) = 0 >= 0 = tt()
             
             a__U51(tt(),V2) = V2 + 1 >= V2 + 1 = a__U52(a__isNatList(V2))
             
             a__U52(tt()) = 1 >= 0 = tt()
             
             a__U61(tt(),L,N) = 0 >= 0 = a__U62(a__isNat(N),L)
             
             a__U62(tt(),L) = 0 >= 0 = s(a__length(mark(L)))
             
             a__isNat(0()) = 0 >= 0 = tt()
             
             a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
             
             a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
             
             a__isNatIList(V) = 0 >= 0 = a__U31(a__isNatList(V))
             
             a__isNatIList(zeros()) = 0 >= 0 = tt()
             
             a__isNatIList(cons(V1,V2)) = 0 >= 0 = a__U41(a__isNat(V1),V2)
             
             a__isNatList(nil()) = 0 >= 0 = tt()
             
             a__isNatList(cons(V1,V2)) = V2 + 1 >= V2 + 1 = a__U51(a__isNat(V1),V2)
             
             a__length(nil()) = 0 >= 0 = 0()
             
             a__length(cons(N,L)) = 0 >= 0 = a__U61(a__isNatList(L),L,N)
             
             mark(zeros()) = 1 >= 1 = a__zeros()
             
             mark(U11(X)) = 1 >= 0 = a__U11(mark(X))
             
             mark(U21(X)) = X + 1 >= X + 1 = a__U21(mark(X))
             
             mark(U31(X)) = 1 >= 0 = a__U31(mark(X))
             
             mark(U41(X1,X2)) = 1 >= 0 = a__U41(mark(X1),X2)
             
             mark(U42(X)) = X + 1 >= X + 1 = a__U42(mark(X))
             
             mark(isNatIList(X)) = 1 >= 0 = a__isNatIList(X)
             
             mark(U51(X1,X2)) = X2 + 2 >= X2 + 1 = a__U51(mark(X1),X2)
             
             mark(U52(X)) = X + 2 >= X + 2 = a__U52(mark(X))
             
             mark(isNatList(X)) = X + 1 >= X = a__isNatList(X)
             
             mark(U61(X1,X2,X3)) = 1 >= 0 = a__U61(mark(X1),X2,X3)
             
             mark(U62(X1,X2)) = 1 >= 0 = a__U62(mark(X1),X2)
             
             mark(isNat(X)) = 1 >= 0 = a__isNat(X)
             
             mark(length(X)) = 1 >= 0 = a__length(mark(X))
             
             mark(cons(X1,X2)) = X2 + 2 >= X2 + 1 = cons(mark(X1),X2)
             
             mark(0()) = 1 >= 0 = 0()
             
             mark(tt()) = 1 >= 0 = tt()
             
             mark(s(X)) = X + 1 >= X + 1 = s(mark(X))
             
             mark(nil()) = 1 >= 0 = nil()
             
             a__zeros() = 1 >= 0 = zeros()
             
             a__U11(X) = 0 >= 0 = U11(X)
             
             a__U21(X) = X >= X = U21(X)
             
             a__U31(X) = 0 >= 0 = U31(X)
             
             a__U41(X1,X2) = 0 >= 0 = U41(X1,X2)
             
             a__U42(X) = X >= X = U42(X)
             
             a__isNatIList(X) = 0 >= 0 = isNatIList(X)
             
             a__U51(X1,X2) = X2 + 1 >= X2 + 1 = U51(X1,X2)
             
             a__U52(X) = X + 1 >= X + 1 = U52(X)
             
             a__isNatList(X) = X >= X = isNatList(X)
             
             a__U61(X1,X2,X3) = 0 >= 0 = U61(X1,X2,X3)
             
             a__U62(X1,X2) = 0 >= 0 = U62(X1,X2)
             
             a__isNat(X) = 0 >= 0 = isNat(X)
             
             a__length(X) = 0 >= 0 = length(X)
            problem:
             DPs:
              a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
              a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
              a__U62#(tt(),L) -> a__length#(mark(L))
              mark#(s(X)) -> mark#(X)
              mark#(U42(X)) -> mark#(X)
              mark#(U21(X)) -> mark#(X)
             TRS:
              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(),L,N) -> a__U62(a__isNat(N),L)
              a__U62(tt(),L) -> s(a__length(mark(L)))
              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__length(nil()) -> 0()
              a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
              mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
              mark(isNat(X)) -> a__isNat(X)
              mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
              a__U62(X1,X2) -> U62(X1,X2)
              a__isNat(X) -> isNat(X)
              a__length(X) -> length(X)
            Matrix Interpretation Processor:
             dimension: 1
             interpretation:
              [a__length#](x0) = 0,
              
              [mark#](x0) = x0,
              
              [a__U62#](x0, x1) = 0,
              
              [a__U61#](x0, x1, x2) = 0,
              
              [isNat](x0) = 0,
              
              [U62](x0, x1) = x0,
              
              [U61](x0, x1, x2) = 0,
              
              [isNatList](x0) = x0,
              
              [U52](x0) = 0,
              
              [U51](x0, x1) = 1,
              
              [isNatIList](x0) = x0,
              
              [U42](x0) = x0 + 1,
              
              [U41](x0, x1) = x1,
              
              [U31](x0) = 0,
              
              [U21](x0) = x0,
              
              [U11](x0) = 0,
              
              [nil] = 0,
              
              [length](x0) = 0,
              
              [s](x0) = x0,
              
              [a__length](x0) = 0,
              
              [mark](x0) = x0 + 1,
              
              [a__U62](x0, x1) = x0,
              
              [a__isNat](x0) = 0,
              
              [a__U61](x0, x1, x2) = 0,
              
              [a__U52](x0) = 1,
              
              [a__isNatList](x0) = x0,
              
              [a__U51](x0, x1) = 1,
              
              [a__U42](x0) = x0 + 1,
              
              [a__isNatIList](x0) = x0,
              
              [a__U41](x0, x1) = x1 + 1,
              
              [a__U31](x0) = 0,
              
              [a__U21](x0) = x0,
              
              [a__U11](x0) = 0,
              
              [tt] = 0,
              
              [cons](x0, x1) = x1 + 1,
              
              [zeros] = 0,
              
              [0] = 0,
              
              [a__zeros] = 1
             orientation:
              a__length#(cons(N,L)) = 0 >= 0 = a__U61#(a__isNatList(L),L,N)
              
              a__U61#(tt(),L,N) = 0 >= 0 = a__U62#(a__isNat(N),L)
              
              a__U62#(tt(),L) = 0 >= 0 = a__length#(mark(L))
              
              mark#(s(X)) = X >= X = mark#(X)
              
              mark#(U42(X)) = X + 1 >= X = mark#(X)
              
              mark#(U21(X)) = X >= X = mark#(X)
              
              a__zeros() = 1 >= 1 = cons(0(),zeros())
              
              a__U11(tt()) = 0 >= 0 = tt()
              
              a__U21(tt()) = 0 >= 0 = tt()
              
              a__U31(tt()) = 0 >= 0 = tt()
              
              a__U41(tt(),V2) = V2 + 1 >= V2 + 1 = a__U42(a__isNatIList(V2))
              
              a__U42(tt()) = 1 >= 0 = tt()
              
              a__U51(tt(),V2) = 1 >= 1 = a__U52(a__isNatList(V2))
              
              a__U52(tt()) = 1 >= 0 = tt()
              
              a__U61(tt(),L,N) = 0 >= 0 = a__U62(a__isNat(N),L)
              
              a__U62(tt(),L) = 0 >= 0 = s(a__length(mark(L)))
              
              a__isNat(0()) = 0 >= 0 = tt()
              
              a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
              
              a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
              
              a__isNatIList(V) = V >= 0 = a__U31(a__isNatList(V))
              
              a__isNatIList(zeros()) = 0 >= 0 = tt()
              
              a__isNatIList(cons(V1,V2)) = V2 + 1 >= V2 + 1 = a__U41(a__isNat(V1),V2)
              
              a__isNatList(nil()) = 0 >= 0 = tt()
              
              a__isNatList(cons(V1,V2)) = V2 + 1 >= 1 = a__U51(a__isNat(V1),V2)
              
              a__length(nil()) = 0 >= 0 = 0()
              
              a__length(cons(N,L)) = 0 >= 0 = a__U61(a__isNatList(L),L,N)
              
              mark(zeros()) = 1 >= 1 = a__zeros()
              
              mark(U11(X)) = 1 >= 0 = a__U11(mark(X))
              
              mark(U21(X)) = X + 1 >= X + 1 = a__U21(mark(X))
              
              mark(U31(X)) = 1 >= 0 = a__U31(mark(X))
              
              mark(U41(X1,X2)) = X2 + 1 >= X2 + 1 = a__U41(mark(X1),X2)
              
              mark(U42(X)) = X + 2 >= X + 2 = a__U42(mark(X))
              
              mark(isNatIList(X)) = X + 1 >= X = a__isNatIList(X)
              
              mark(U51(X1,X2)) = 2 >= 1 = a__U51(mark(X1),X2)
              
              mark(U52(X)) = 1 >= 1 = a__U52(mark(X))
              
              mark(isNatList(X)) = X + 1 >= X = a__isNatList(X)
              
              mark(U61(X1,X2,X3)) = 1 >= 0 = a__U61(mark(X1),X2,X3)
              
              mark(U62(X1,X2)) = X1 + 1 >= X1 + 1 = a__U62(mark(X1),X2)
              
              mark(isNat(X)) = 1 >= 0 = a__isNat(X)
              
              mark(length(X)) = 1 >= 0 = a__length(mark(X))
              
              mark(cons(X1,X2)) = X2 + 2 >= X2 + 1 = cons(mark(X1),X2)
              
              mark(0()) = 1 >= 0 = 0()
              
              mark(tt()) = 1 >= 0 = tt()
              
              mark(s(X)) = X + 1 >= X + 1 = s(mark(X))
              
              mark(nil()) = 1 >= 0 = nil()
              
              a__zeros() = 1 >= 0 = zeros()
              
              a__U11(X) = 0 >= 0 = U11(X)
              
              a__U21(X) = X >= X = U21(X)
              
              a__U31(X) = 0 >= 0 = U31(X)
              
              a__U41(X1,X2) = X2 + 1 >= X2 = U41(X1,X2)
              
              a__U42(X) = X + 1 >= X + 1 = U42(X)
              
              a__isNatIList(X) = X >= X = isNatIList(X)
              
              a__U51(X1,X2) = 1 >= 1 = U51(X1,X2)
              
              a__U52(X) = 1 >= 0 = U52(X)
              
              a__isNatList(X) = X >= X = isNatList(X)
              
              a__U61(X1,X2,X3) = 0 >= 0 = U61(X1,X2,X3)
              
              a__U62(X1,X2) = X1 >= X1 = U62(X1,X2)
              
              a__isNat(X) = 0 >= 0 = isNat(X)
              
              a__length(X) = 0 >= 0 = length(X)
             problem:
              DPs:
               a__length#(cons(N,L)) -> a__U61#(a__isNatList(L),L,N)
               a__U61#(tt(),L,N) -> a__U62#(a__isNat(N),L)
               a__U62#(tt(),L) -> a__length#(mark(L))
               mark#(s(X)) -> mark#(X)
               mark#(U21(X)) -> mark#(X)
              TRS:
               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(),L,N) -> a__U62(a__isNat(N),L)
               a__U62(tt(),L) -> s(a__length(mark(L)))
               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__length(nil()) -> 0()
               a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
               mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
               mark(isNat(X)) -> a__isNat(X)
               mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
               a__U62(X1,X2) -> U62(X1,X2)
               a__isNat(X) -> isNat(X)
               a__length(X) -> length(X)
             Open
    
    DPs:
     a__isNatIList#(cons(V1,V2)) -> a__U41#(a__isNat(V1),V2)
     a__U41#(tt(),V2) -> a__isNatIList#(V2)
    TRS:
     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(),L,N) -> a__U62(a__isNat(N),L)
     a__U62(tt(),L) -> s(a__length(mark(L)))
     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__length(nil()) -> 0()
     a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
     mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
     mark(isNat(X)) -> a__isNat(X)
     mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
     a__U62(X1,X2) -> U62(X1,X2)
     a__isNat(X) -> isNat(X)
     a__length(X) -> length(X)
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [a__isNatIList#](x0) = x0,
      
      [a__U41#](x0, x1) = x1,
      
      [isNat](x0) = 0,
      
      [U62](x0, x1) = 0,
      
      [U61](x0, x1, x2) = 0,
      
      [isNatList](x0) = 0,
      
      [U52](x0) = 0,
      
      [U51](x0, x1) = x0,
      
      [isNatIList](x0) = 0,
      
      [U42](x0) = 0,
      
      [U41](x0, x1) = 0,
      
      [U31](x0) = 1,
      
      [U21](x0) = 0,
      
      [U11](x0) = 0,
      
      [nil] = 1,
      
      [length](x0) = x0 + 1,
      
      [s](x0) = 0,
      
      [a__length](x0) = x0 + 1,
      
      [mark](x0) = x0 + 1,
      
      [a__U62](x0, x1) = 1,
      
      [a__isNat](x0) = 0,
      
      [a__U61](x0, x1, x2) = 1,
      
      [a__U52](x0) = 0,
      
      [a__isNatList](x0) = 1,
      
      [a__U51](x0, x1) = x0,
      
      [a__U42](x0) = 1,
      
      [a__isNatIList](x0) = 1,
      
      [a__U41](x0, x1) = 1,
      
      [a__U31](x0) = 1,
      
      [a__U21](x0) = 0,
      
      [a__U11](x0) = 0,
      
      [tt] = 0,
      
      [cons](x0, x1) = x0 + x1 + 1,
      
      [zeros] = 0,
      
      [0] = 0,
      
      [a__zeros] = 1
     orientation:
      a__isNatIList#(cons(V1,V2)) = V1 + V2 + 1 >= V2 = a__U41#(a__isNat(V1),V2)
      
      a__U41#(tt(),V2) = V2 >= V2 = a__isNatIList#(V2)
      
      a__zeros() = 1 >= 1 = cons(0(),zeros())
      
      a__U11(tt()) = 0 >= 0 = tt()
      
      a__U21(tt()) = 0 >= 0 = tt()
      
      a__U31(tt()) = 1 >= 0 = tt()
      
      a__U41(tt(),V2) = 1 >= 1 = a__U42(a__isNatIList(V2))
      
      a__U42(tt()) = 1 >= 0 = tt()
      
      a__U51(tt(),V2) = 0 >= 0 = a__U52(a__isNatList(V2))
      
      a__U52(tt()) = 0 >= 0 = tt()
      
      a__U61(tt(),L,N) = 1 >= 1 = a__U62(a__isNat(N),L)
      
      a__U62(tt(),L) = 1 >= 0 = s(a__length(mark(L)))
      
      a__isNat(0()) = 0 >= 0 = tt()
      
      a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
      
      a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
      
      a__isNatIList(V) = 1 >= 1 = a__U31(a__isNatList(V))
      
      a__isNatIList(zeros()) = 1 >= 0 = tt()
      
      a__isNatIList(cons(V1,V2)) = 1 >= 1 = a__U41(a__isNat(V1),V2)
      
      a__isNatList(nil()) = 1 >= 0 = tt()
      
      a__isNatList(cons(V1,V2)) = 1 >= 0 = a__U51(a__isNat(V1),V2)
      
      a__length(nil()) = 2 >= 0 = 0()
      
      a__length(cons(N,L)) = L + N + 2 >= 1 = a__U61(a__isNatList(L),L,N)
      
      mark(zeros()) = 1 >= 1 = a__zeros()
      
      mark(U11(X)) = 1 >= 0 = a__U11(mark(X))
      
      mark(U21(X)) = 1 >= 0 = a__U21(mark(X))
      
      mark(U31(X)) = 2 >= 1 = a__U31(mark(X))
      
      mark(U41(X1,X2)) = 1 >= 1 = a__U41(mark(X1),X2)
      
      mark(U42(X)) = 1 >= 1 = a__U42(mark(X))
      
      mark(isNatIList(X)) = 1 >= 1 = a__isNatIList(X)
      
      mark(U51(X1,X2)) = X1 + 1 >= X1 + 1 = a__U51(mark(X1),X2)
      
      mark(U52(X)) = 1 >= 0 = a__U52(mark(X))
      
      mark(isNatList(X)) = 1 >= 1 = a__isNatList(X)
      
      mark(U61(X1,X2,X3)) = 1 >= 1 = a__U61(mark(X1),X2,X3)
      
      mark(U62(X1,X2)) = 1 >= 1 = a__U62(mark(X1),X2)
      
      mark(isNat(X)) = 1 >= 0 = a__isNat(X)
      
      mark(length(X)) = X + 2 >= X + 2 = a__length(mark(X))
      
      mark(cons(X1,X2)) = X1 + X2 + 2 >= X1 + X2 + 2 = cons(mark(X1),X2)
      
      mark(0()) = 1 >= 0 = 0()
      
      mark(tt()) = 1 >= 0 = tt()
      
      mark(s(X)) = 1 >= 0 = s(mark(X))
      
      mark(nil()) = 2 >= 1 = nil()
      
      a__zeros() = 1 >= 0 = zeros()
      
      a__U11(X) = 0 >= 0 = U11(X)
      
      a__U21(X) = 0 >= 0 = U21(X)
      
      a__U31(X) = 1 >= 1 = U31(X)
      
      a__U41(X1,X2) = 1 >= 0 = U41(X1,X2)
      
      a__U42(X) = 1 >= 0 = U42(X)
      
      a__isNatIList(X) = 1 >= 0 = isNatIList(X)
      
      a__U51(X1,X2) = X1 >= X1 = U51(X1,X2)
      
      a__U52(X) = 0 >= 0 = U52(X)
      
      a__isNatList(X) = 1 >= 0 = isNatList(X)
      
      a__U61(X1,X2,X3) = 1 >= 0 = U61(X1,X2,X3)
      
      a__U62(X1,X2) = 1 >= 0 = U62(X1,X2)
      
      a__isNat(X) = 0 >= 0 = isNat(X)
      
      a__length(X) = X + 1 >= X + 1 = length(X)
     problem:
      DPs:
       a__U41#(tt(),V2) -> a__isNatIList#(V2)
      TRS:
       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(),L,N) -> a__U62(a__isNat(N),L)
       a__U62(tt(),L) -> s(a__length(mark(L)))
       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__length(nil()) -> 0()
       a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
       mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
       mark(isNat(X)) -> a__isNat(X)
       mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
       a__U62(X1,X2) -> U62(X1,X2)
       a__isNat(X) -> isNat(X)
       a__length(X) -> length(X)
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [a__isNatIList#](x0) = 0,
       
       [a__U41#](x0, x1) = x0 + 1,
       
       [isNat](x0) = 1,
       
       [U62](x0, x1) = 1,
       
       [U61](x0, x1, x2) = x0,
       
       [isNatList](x0) = 1,
       
       [U52](x0) = 1,
       
       [U51](x0, x1) = 1,
       
       [isNatIList](x0) = 1,
       
       [U42](x0) = 1,
       
       [U41](x0, x1) = 1,
       
       [U31](x0) = 1,
       
       [U21](x0) = x0,
       
       [U11](x0) = 1,
       
       [nil] = 1,
       
       [length](x0) = 1,
       
       [s](x0) = 1,
       
       [a__length](x0) = 1,
       
       [mark](x0) = 1,
       
       [a__U62](x0, x1) = 1,
       
       [a__isNat](x0) = 1,
       
       [a__U61](x0, x1, x2) = x0,
       
       [a__U52](x0) = 1,
       
       [a__isNatList](x0) = 1,
       
       [a__U51](x0, x1) = 1,
       
       [a__U42](x0) = 1,
       
       [a__isNatIList](x0) = 1,
       
       [a__U41](x0, x1) = 1,
       
       [a__U31](x0) = 1,
       
       [a__U21](x0) = x0,
       
       [a__U11](x0) = 1,
       
       [tt] = 1,
       
       [cons](x0, x1) = 1,
       
       [zeros] = 1,
       
       [0] = 1,
       
       [a__zeros] = 1
      orientation:
       a__U41#(tt(),V2) = 2 >= 0 = a__isNatIList#(V2)
       
       a__zeros() = 1 >= 1 = cons(0(),zeros())
       
       a__U11(tt()) = 1 >= 1 = tt()
       
       a__U21(tt()) = 1 >= 1 = tt()
       
       a__U31(tt()) = 1 >= 1 = tt()
       
       a__U41(tt(),V2) = 1 >= 1 = a__U42(a__isNatIList(V2))
       
       a__U42(tt()) = 1 >= 1 = tt()
       
       a__U51(tt(),V2) = 1 >= 1 = a__U52(a__isNatList(V2))
       
       a__U52(tt()) = 1 >= 1 = tt()
       
       a__U61(tt(),L,N) = 1 >= 1 = a__U62(a__isNat(N),L)
       
       a__U62(tt(),L) = 1 >= 1 = s(a__length(mark(L)))
       
       a__isNat(0()) = 1 >= 1 = tt()
       
       a__isNat(length(V1)) = 1 >= 1 = a__U11(a__isNatList(V1))
       
       a__isNat(s(V1)) = 1 >= 1 = a__U21(a__isNat(V1))
       
       a__isNatIList(V) = 1 >= 1 = a__U31(a__isNatList(V))
       
       a__isNatIList(zeros()) = 1 >= 1 = tt()
       
       a__isNatIList(cons(V1,V2)) = 1 >= 1 = a__U41(a__isNat(V1),V2)
       
       a__isNatList(nil()) = 1 >= 1 = tt()
       
       a__isNatList(cons(V1,V2)) = 1 >= 1 = a__U51(a__isNat(V1),V2)
       
       a__length(nil()) = 1 >= 1 = 0()
       
       a__length(cons(N,L)) = 1 >= 1 = a__U61(a__isNatList(L),L,N)
       
       mark(zeros()) = 1 >= 1 = a__zeros()
       
       mark(U11(X)) = 1 >= 1 = a__U11(mark(X))
       
       mark(U21(X)) = 1 >= 1 = a__U21(mark(X))
       
       mark(U31(X)) = 1 >= 1 = a__U31(mark(X))
       
       mark(U41(X1,X2)) = 1 >= 1 = a__U41(mark(X1),X2)
       
       mark(U42(X)) = 1 >= 1 = a__U42(mark(X))
       
       mark(isNatIList(X)) = 1 >= 1 = a__isNatIList(X)
       
       mark(U51(X1,X2)) = 1 >= 1 = a__U51(mark(X1),X2)
       
       mark(U52(X)) = 1 >= 1 = a__U52(mark(X))
       
       mark(isNatList(X)) = 1 >= 1 = a__isNatList(X)
       
       mark(U61(X1,X2,X3)) = 1 >= 1 = a__U61(mark(X1),X2,X3)
       
       mark(U62(X1,X2)) = 1 >= 1 = a__U62(mark(X1),X2)
       
       mark(isNat(X)) = 1 >= 1 = a__isNat(X)
       
       mark(length(X)) = 1 >= 1 = a__length(mark(X))
       
       mark(cons(X1,X2)) = 1 >= 1 = cons(mark(X1),X2)
       
       mark(0()) = 1 >= 1 = 0()
       
       mark(tt()) = 1 >= 1 = tt()
       
       mark(s(X)) = 1 >= 1 = s(mark(X))
       
       mark(nil()) = 1 >= 1 = nil()
       
       a__zeros() = 1 >= 1 = zeros()
       
       a__U11(X) = 1 >= 1 = U11(X)
       
       a__U21(X) = X >= X = U21(X)
       
       a__U31(X) = 1 >= 1 = U31(X)
       
       a__U41(X1,X2) = 1 >= 1 = U41(X1,X2)
       
       a__U42(X) = 1 >= 1 = U42(X)
       
       a__isNatIList(X) = 1 >= 1 = isNatIList(X)
       
       a__U51(X1,X2) = 1 >= 1 = U51(X1,X2)
       
       a__U52(X) = 1 >= 1 = U52(X)
       
       a__isNatList(X) = 1 >= 1 = isNatList(X)
       
       a__U61(X1,X2,X3) = X1 >= X1 = U61(X1,X2,X3)
       
       a__U62(X1,X2) = 1 >= 1 = U62(X1,X2)
       
       a__isNat(X) = 1 >= 1 = isNat(X)
       
       a__length(X) = 1 >= 1 = length(X)
      problem:
       DPs:
        
       TRS:
        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(),L,N) -> a__U62(a__isNat(N),L)
        a__U62(tt(),L) -> s(a__length(mark(L)))
        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__length(nil()) -> 0()
        a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
        mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
        mark(isNat(X)) -> a__isNat(X)
        mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
        a__U62(X1,X2) -> U62(X1,X2)
        a__isNat(X) -> isNat(X)
        a__length(X) -> length(X)
      Qed
    
    DPs:
     a__isNatList#(cons(V1,V2)) -> a__U51#(a__isNat(V1),V2)
     a__U51#(tt(),V2) -> a__isNatList#(V2)
     a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
     a__isNat#(s(V1)) -> a__isNat#(V1)
     a__isNat#(length(V1)) -> a__isNatList#(V1)
    TRS:
     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(),L,N) -> a__U62(a__isNat(N),L)
     a__U62(tt(),L) -> s(a__length(mark(L)))
     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__length(nil()) -> 0()
     a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
     mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
     mark(isNat(X)) -> a__isNat(X)
     mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
     a__U62(X1,X2) -> U62(X1,X2)
     a__isNat(X) -> isNat(X)
     a__length(X) -> length(X)
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [a__isNat#](x0) = x0 + 1,
      
      [a__isNatList#](x0) = x0,
      
      [a__U51#](x0, x1) = x1,
      
      [isNat](x0) = 0,
      
      [U62](x0, x1) = x1,
      
      [U61](x0, x1, x2) = x1 + x2,
      
      [isNatList](x0) = x0,
      
      [U52](x0) = 0,
      
      [U51](x0, x1) = x0 + x1 + 1,
      
      [isNatIList](x0) = 0,
      
      [U42](x0) = x0,
      
      [U41](x0, x1) = 0,
      
      [U31](x0) = 0,
      
      [U21](x0) = 0,
      
      [U11](x0) = 0,
      
      [nil] = 0,
      
      [length](x0) = x0,
      
      [s](x0) = x0,
      
      [a__length](x0) = x0,
      
      [mark](x0) = x0 + 1,
      
      [a__U62](x0, x1) = x1 + 1,
      
      [a__isNat](x0) = 0,
      
      [a__U61](x0, x1, x2) = x1 + x2 + 1,
      
      [a__U52](x0) = 1,
      
      [a__isNatList](x0) = x0,
      
      [a__U51](x0, x1) = x0 + x1 + 1,
      
      [a__U42](x0) = x0,
      
      [a__isNatIList](x0) = 0,
      
      [a__U41](x0, x1) = 0,
      
      [a__U31](x0) = 0,
      
      [a__U21](x0) = 0,
      
      [a__U11](x0) = 0,
      
      [tt] = 0,
      
      [cons](x0, x1) = x0 + x1 + 1,
      
      [zeros] = 0,
      
      [0] = 0,
      
      [a__zeros] = 1
     orientation:
      a__isNatList#(cons(V1,V2)) = V1 + V2 + 1 >= V2 = a__U51#(a__isNat(V1),V2)
      
      a__U51#(tt(),V2) = V2 >= V2 = a__isNatList#(V2)
      
      a__isNatList#(cons(V1,V2)) = V1 + V2 + 1 >= V1 + 1 = a__isNat#(V1)
      
      a__isNat#(s(V1)) = V1 + 1 >= V1 + 1 = a__isNat#(V1)
      
      a__isNat#(length(V1)) = V1 + 1 >= V1 = a__isNatList#(V1)
      
      a__zeros() = 1 >= 1 = cons(0(),zeros())
      
      a__U11(tt()) = 0 >= 0 = tt()
      
      a__U21(tt()) = 0 >= 0 = tt()
      
      a__U31(tt()) = 0 >= 0 = tt()
      
      a__U41(tt(),V2) = 0 >= 0 = a__U42(a__isNatIList(V2))
      
      a__U42(tt()) = 0 >= 0 = tt()
      
      a__U51(tt(),V2) = V2 + 1 >= 1 = a__U52(a__isNatList(V2))
      
      a__U52(tt()) = 1 >= 0 = tt()
      
      a__U61(tt(),L,N) = L + N + 1 >= L + 1 = a__U62(a__isNat(N),L)
      
      a__U62(tt(),L) = L + 1 >= L + 1 = s(a__length(mark(L)))
      
      a__isNat(0()) = 0 >= 0 = tt()
      
      a__isNat(length(V1)) = 0 >= 0 = a__U11(a__isNatList(V1))
      
      a__isNat(s(V1)) = 0 >= 0 = a__U21(a__isNat(V1))
      
      a__isNatIList(V) = 0 >= 0 = a__U31(a__isNatList(V))
      
      a__isNatIList(zeros()) = 0 >= 0 = tt()
      
      a__isNatIList(cons(V1,V2)) = 0 >= 0 = a__U41(a__isNat(V1),V2)
      
      a__isNatList(nil()) = 0 >= 0 = tt()
      
      a__isNatList(cons(V1,V2)) = V1 + V2 + 1 >= V2 + 1 = a__U51(a__isNat(V1),V2)
      
      a__length(nil()) = 0 >= 0 = 0()
      
      a__length(cons(N,L)) = L + N + 1 >= L + N + 1 = a__U61(a__isNatList(L),L,N)
      
      mark(zeros()) = 1 >= 1 = a__zeros()
      
      mark(U11(X)) = 1 >= 0 = a__U11(mark(X))
      
      mark(U21(X)) = 1 >= 0 = a__U21(mark(X))
      
      mark(U31(X)) = 1 >= 0 = a__U31(mark(X))
      
      mark(U41(X1,X2)) = 1 >= 0 = a__U41(mark(X1),X2)
      
      mark(U42(X)) = X + 1 >= X + 1 = a__U42(mark(X))
      
      mark(isNatIList(X)) = 1 >= 0 = a__isNatIList(X)
      
      mark(U51(X1,X2)) = X1 + X2 + 2 >= X1 + X2 + 2 = a__U51(mark(X1),X2)
      
      mark(U52(X)) = 1 >= 1 = a__U52(mark(X))
      
      mark(isNatList(X)) = X + 1 >= X = a__isNatList(X)
      
      mark(U61(X1,X2,X3)) = X2 + X3 + 1 >= X2 + X3 + 1 = a__U61(mark(X1),X2,X3)
      
      mark(U62(X1,X2)) = X2 + 1 >= X2 + 1 = a__U62(mark(X1),X2)
      
      mark(isNat(X)) = 1 >= 0 = a__isNat(X)
      
      mark(length(X)) = X + 1 >= X + 1 = a__length(mark(X))
      
      mark(cons(X1,X2)) = X1 + X2 + 2 >= X1 + X2 + 2 = cons(mark(X1),X2)
      
      mark(0()) = 1 >= 0 = 0()
      
      mark(tt()) = 1 >= 0 = tt()
      
      mark(s(X)) = X + 1 >= X + 1 = s(mark(X))
      
      mark(nil()) = 1 >= 0 = nil()
      
      a__zeros() = 1 >= 0 = zeros()
      
      a__U11(X) = 0 >= 0 = U11(X)
      
      a__U21(X) = 0 >= 0 = U21(X)
      
      a__U31(X) = 0 >= 0 = U31(X)
      
      a__U41(X1,X2) = 0 >= 0 = U41(X1,X2)
      
      a__U42(X) = X >= X = U42(X)
      
      a__isNatIList(X) = 0 >= 0 = isNatIList(X)
      
      a__U51(X1,X2) = X1 + X2 + 1 >= X1 + X2 + 1 = U51(X1,X2)
      
      a__U52(X) = 1 >= 0 = U52(X)
      
      a__isNatList(X) = X >= X = isNatList(X)
      
      a__U61(X1,X2,X3) = X2 + X3 + 1 >= X2 + X3 = U61(X1,X2,X3)
      
      a__U62(X1,X2) = X2 + 1 >= X2 = U62(X1,X2)
      
      a__isNat(X) = 0 >= 0 = isNat(X)
      
      a__length(X) = X >= X = length(X)
     problem:
      DPs:
       a__U51#(tt(),V2) -> a__isNatList#(V2)
       a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
       a__isNat#(s(V1)) -> a__isNat#(V1)
      TRS:
       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(),L,N) -> a__U62(a__isNat(N),L)
       a__U62(tt(),L) -> s(a__length(mark(L)))
       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__length(nil()) -> 0()
       a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
       mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
       mark(isNat(X)) -> a__isNat(X)
       mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
       a__U62(X1,X2) -> U62(X1,X2)
       a__isNat(X) -> isNat(X)
       a__length(X) -> length(X)
     Matrix Interpretation Processor:
      dimension: 1
      interpretation:
       [a__isNat#](x0) = 0,
       
       [a__isNatList#](x0) = 0,
       
       [a__U51#](x0, x1) = x0 + 1,
       
       [isNat](x0) = 0,
       
       [U62](x0, x1) = 0,
       
       [U61](x0, x1, x2) = 0,
       
       [isNatList](x0) = x0,
       
       [U52](x0) = 0,
       
       [U51](x0, x1) = 0,
       
       [isNatIList](x0) = 0,
       
       [U42](x0) = 0,
       
       [U41](x0, x1) = 0,
       
       [U31](x0) = 0,
       
       [U21](x0) = 0,
       
       [U11](x0) = 0,
       
       [nil] = 1,
       
       [length](x0) = 0,
       
       [s](x0) = x0,
       
       [a__length](x0) = 1,
       
       [mark](x0) = x0 + 1,
       
       [a__U62](x0, x1) = 1,
       
       [a__isNat](x0) = 1,
       
       [a__U61](x0, x1, x2) = 1,
       
       [a__U52](x0) = 1,
       
       [a__isNatList](x0) = x0,
       
       [a__U51](x0, x1) = 1,
       
       [a__U42](x0) = 1,
       
       [a__isNatIList](x0) = 1,
       
       [a__U41](x0, x1) = 1,
       
       [a__U31](x0) = 1,
       
       [a__U21](x0) = 1,
       
       [a__U11](x0) = 1,
       
       [tt] = 1,
       
       [cons](x0, x1) = 1,
       
       [zeros] = 0,
       
       [0] = 1,
       
       [a__zeros] = 1
      orientation:
       a__U51#(tt(),V2) = 2 >= 0 = a__isNatList#(V2)
       
       a__isNatList#(cons(V1,V2)) = 0 >= 0 = a__isNat#(V1)
       
       a__isNat#(s(V1)) = 0 >= 0 = a__isNat#(V1)
       
       a__zeros() = 1 >= 1 = cons(0(),zeros())
       
       a__U11(tt()) = 1 >= 1 = tt()
       
       a__U21(tt()) = 1 >= 1 = tt()
       
       a__U31(tt()) = 1 >= 1 = tt()
       
       a__U41(tt(),V2) = 1 >= 1 = a__U42(a__isNatIList(V2))
       
       a__U42(tt()) = 1 >= 1 = tt()
       
       a__U51(tt(),V2) = 1 >= 1 = a__U52(a__isNatList(V2))
       
       a__U52(tt()) = 1 >= 1 = tt()
       
       a__U61(tt(),L,N) = 1 >= 1 = a__U62(a__isNat(N),L)
       
       a__U62(tt(),L) = 1 >= 1 = s(a__length(mark(L)))
       
       a__isNat(0()) = 1 >= 1 = tt()
       
       a__isNat(length(V1)) = 1 >= 1 = a__U11(a__isNatList(V1))
       
       a__isNat(s(V1)) = 1 >= 1 = a__U21(a__isNat(V1))
       
       a__isNatIList(V) = 1 >= 1 = a__U31(a__isNatList(V))
       
       a__isNatIList(zeros()) = 1 >= 1 = tt()
       
       a__isNatIList(cons(V1,V2)) = 1 >= 1 = a__U41(a__isNat(V1),V2)
       
       a__isNatList(nil()) = 1 >= 1 = tt()
       
       a__isNatList(cons(V1,V2)) = 1 >= 1 = a__U51(a__isNat(V1),V2)
       
       a__length(nil()) = 1 >= 1 = 0()
       
       a__length(cons(N,L)) = 1 >= 1 = a__U61(a__isNatList(L),L,N)
       
       mark(zeros()) = 1 >= 1 = a__zeros()
       
       mark(U11(X)) = 1 >= 1 = a__U11(mark(X))
       
       mark(U21(X)) = 1 >= 1 = a__U21(mark(X))
       
       mark(U31(X)) = 1 >= 1 = a__U31(mark(X))
       
       mark(U41(X1,X2)) = 1 >= 1 = a__U41(mark(X1),X2)
       
       mark(U42(X)) = 1 >= 1 = a__U42(mark(X))
       
       mark(isNatIList(X)) = 1 >= 1 = a__isNatIList(X)
       
       mark(U51(X1,X2)) = 1 >= 1 = a__U51(mark(X1),X2)
       
       mark(U52(X)) = 1 >= 1 = a__U52(mark(X))
       
       mark(isNatList(X)) = X + 1 >= X = a__isNatList(X)
       
       mark(U61(X1,X2,X3)) = 1 >= 1 = a__U61(mark(X1),X2,X3)
       
       mark(U62(X1,X2)) = 1 >= 1 = a__U62(mark(X1),X2)
       
       mark(isNat(X)) = 1 >= 1 = a__isNat(X)
       
       mark(length(X)) = 1 >= 1 = a__length(mark(X))
       
       mark(cons(X1,X2)) = 2 >= 1 = cons(mark(X1),X2)
       
       mark(0()) = 2 >= 1 = 0()
       
       mark(tt()) = 2 >= 1 = tt()
       
       mark(s(X)) = X + 1 >= X + 1 = s(mark(X))
       
       mark(nil()) = 2 >= 1 = nil()
       
       a__zeros() = 1 >= 0 = zeros()
       
       a__U11(X) = 1 >= 0 = U11(X)
       
       a__U21(X) = 1 >= 0 = U21(X)
       
       a__U31(X) = 1 >= 0 = U31(X)
       
       a__U41(X1,X2) = 1 >= 0 = U41(X1,X2)
       
       a__U42(X) = 1 >= 0 = U42(X)
       
       a__isNatIList(X) = 1 >= 0 = isNatIList(X)
       
       a__U51(X1,X2) = 1 >= 0 = U51(X1,X2)
       
       a__U52(X) = 1 >= 0 = U52(X)
       
       a__isNatList(X) = X >= X = isNatList(X)
       
       a__U61(X1,X2,X3) = 1 >= 0 = U61(X1,X2,X3)
       
       a__U62(X1,X2) = 1 >= 0 = U62(X1,X2)
       
       a__isNat(X) = 1 >= 0 = isNat(X)
       
       a__length(X) = 1 >= 0 = length(X)
      problem:
       DPs:
        a__isNatList#(cons(V1,V2)) -> a__isNat#(V1)
        a__isNat#(s(V1)) -> a__isNat#(V1)
       TRS:
        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(),L,N) -> a__U62(a__isNat(N),L)
        a__U62(tt(),L) -> s(a__length(mark(L)))
        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__length(nil()) -> 0()
        a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
        mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
        mark(isNat(X)) -> a__isNat(X)
        mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
        a__U62(X1,X2) -> U62(X1,X2)
        a__isNat(X) -> isNat(X)
        a__length(X) -> length(X)
      Matrix Interpretation Processor:
       dimension: 1
       interpretation:
        [a__isNat#](x0) = 0,
        
        [a__isNatList#](x0) = x0 + 1,
        
        [isNat](x0) = 1,
        
        [U62](x0, x1) = x0,
        
        [U61](x0, x1, x2) = 1,
        
        [isNatList](x0) = 1,
        
        [U52](x0) = 1,
        
        [U51](x0, x1) = 0,
        
        [isNatIList](x0) = 1,
        
        [U42](x0) = 1,
        
        [U41](x0, x1) = 1,
        
        [U31](x0) = 1,
        
        [U21](x0) = 1,
        
        [U11](x0) = 1,
        
        [nil] = 1,
        
        [length](x0) = 1,
        
        [s](x0) = 1,
        
        [a__length](x0) = 1,
        
        [mark](x0) = 1,
        
        [a__U62](x0, x1) = x0,
        
        [a__isNat](x0) = 1,
        
        [a__U61](x0, x1, x2) = 1,
        
        [a__U52](x0) = 1,
        
        [a__isNatList](x0) = 1,
        
        [a__U51](x0, x1) = x0,
        
        [a__U42](x0) = 1,
        
        [a__isNatIList](x0) = 1,
        
        [a__U41](x0, x1) = 1,
        
        [a__U31](x0) = 1,
        
        [a__U21](x0) = 1,
        
        [a__U11](x0) = 1,
        
        [tt] = 1,
        
        [cons](x0, x1) = 1,
        
        [zeros] = 1,
        
        [0] = 1,
        
        [a__zeros] = 1
       orientation:
        a__isNatList#(cons(V1,V2)) = 2 >= 0 = a__isNat#(V1)
        
        a__isNat#(s(V1)) = 0 >= 0 = a__isNat#(V1)
        
        a__zeros() = 1 >= 1 = cons(0(),zeros())
        
        a__U11(tt()) = 1 >= 1 = tt()
        
        a__U21(tt()) = 1 >= 1 = tt()
        
        a__U31(tt()) = 1 >= 1 = tt()
        
        a__U41(tt(),V2) = 1 >= 1 = a__U42(a__isNatIList(V2))
        
        a__U42(tt()) = 1 >= 1 = tt()
        
        a__U51(tt(),V2) = 1 >= 1 = a__U52(a__isNatList(V2))
        
        a__U52(tt()) = 1 >= 1 = tt()
        
        a__U61(tt(),L,N) = 1 >= 1 = a__U62(a__isNat(N),L)
        
        a__U62(tt(),L) = 1 >= 1 = s(a__length(mark(L)))
        
        a__isNat(0()) = 1 >= 1 = tt()
        
        a__isNat(length(V1)) = 1 >= 1 = a__U11(a__isNatList(V1))
        
        a__isNat(s(V1)) = 1 >= 1 = a__U21(a__isNat(V1))
        
        a__isNatIList(V) = 1 >= 1 = a__U31(a__isNatList(V))
        
        a__isNatIList(zeros()) = 1 >= 1 = tt()
        
        a__isNatIList(cons(V1,V2)) = 1 >= 1 = a__U41(a__isNat(V1),V2)
        
        a__isNatList(nil()) = 1 >= 1 = tt()
        
        a__isNatList(cons(V1,V2)) = 1 >= 1 = a__U51(a__isNat(V1),V2)
        
        a__length(nil()) = 1 >= 1 = 0()
        
        a__length(cons(N,L)) = 1 >= 1 = a__U61(a__isNatList(L),L,N)
        
        mark(zeros()) = 1 >= 1 = a__zeros()
        
        mark(U11(X)) = 1 >= 1 = a__U11(mark(X))
        
        mark(U21(X)) = 1 >= 1 = a__U21(mark(X))
        
        mark(U31(X)) = 1 >= 1 = a__U31(mark(X))
        
        mark(U41(X1,X2)) = 1 >= 1 = a__U41(mark(X1),X2)
        
        mark(U42(X)) = 1 >= 1 = a__U42(mark(X))
        
        mark(isNatIList(X)) = 1 >= 1 = a__isNatIList(X)
        
        mark(U51(X1,X2)) = 1 >= 1 = a__U51(mark(X1),X2)
        
        mark(U52(X)) = 1 >= 1 = a__U52(mark(X))
        
        mark(isNatList(X)) = 1 >= 1 = a__isNatList(X)
        
        mark(U61(X1,X2,X3)) = 1 >= 1 = a__U61(mark(X1),X2,X3)
        
        mark(U62(X1,X2)) = 1 >= 1 = a__U62(mark(X1),X2)
        
        mark(isNat(X)) = 1 >= 1 = a__isNat(X)
        
        mark(length(X)) = 1 >= 1 = a__length(mark(X))
        
        mark(cons(X1,X2)) = 1 >= 1 = cons(mark(X1),X2)
        
        mark(0()) = 1 >= 1 = 0()
        
        mark(tt()) = 1 >= 1 = tt()
        
        mark(s(X)) = 1 >= 1 = s(mark(X))
        
        mark(nil()) = 1 >= 1 = nil()
        
        a__zeros() = 1 >= 1 = zeros()
        
        a__U11(X) = 1 >= 1 = U11(X)
        
        a__U21(X) = 1 >= 1 = U21(X)
        
        a__U31(X) = 1 >= 1 = U31(X)
        
        a__U41(X1,X2) = 1 >= 1 = U41(X1,X2)
        
        a__U42(X) = 1 >= 1 = U42(X)
        
        a__isNatIList(X) = 1 >= 1 = isNatIList(X)
        
        a__U51(X1,X2) = X1 >= 0 = U51(X1,X2)
        
        a__U52(X) = 1 >= 1 = U52(X)
        
        a__isNatList(X) = 1 >= 1 = isNatList(X)
        
        a__U61(X1,X2,X3) = 1 >= 1 = U61(X1,X2,X3)
        
        a__U62(X1,X2) = X1 >= X1 = U62(X1,X2)
        
        a__isNat(X) = 1 >= 1 = isNat(X)
        
        a__length(X) = 1 >= 1 = length(X)
       problem:
        DPs:
         a__isNat#(s(V1)) -> a__isNat#(V1)
        TRS:
         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(),L,N) -> a__U62(a__isNat(N),L)
         a__U62(tt(),L) -> s(a__length(mark(L)))
         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__length(nil()) -> 0()
         a__length(cons(N,L)) -> a__U61(a__isNatList(L),L,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,X3)) -> a__U61(mark(X1),X2,X3)
         mark(U62(X1,X2)) -> a__U62(mark(X1),X2)
         mark(isNat(X)) -> a__isNat(X)
         mark(length(X)) -> a__length(mark(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(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,X3) -> U61(X1,X2,X3)
         a__U62(X1,X2) -> U62(X1,X2)
         a__isNat(X) -> isNat(X)
         a__length(X) -> length(X)
       Open