Input TRS: 1: a__zeros() -> cons(0(),zeros()) 2: a__U11(tt(),V1) -> a__U12(a__isNatList(V1)) 3: a__U12(tt()) -> tt() 4: a__U21(tt(),V1) -> a__U22(a__isNat(V1)) 5: a__U22(tt()) -> tt() 6: a__U31(tt(),V) -> a__U32(a__isNatList(V)) 7: a__U32(tt()) -> tt() 8: a__U41(tt(),V1,V2) -> a__U42(a__isNat(V1),V2) 9: a__U42(tt(),V2) -> a__U43(a__isNatIList(V2)) 10: a__U43(tt()) -> tt() 11: a__U51(tt(),V1,V2) -> a__U52(a__isNat(V1),V2) 12: a__U52(tt(),V2) -> a__U53(a__isNatList(V2)) 13: a__U53(tt()) -> tt() 14: a__U61(tt(),V1,V2) -> a__U62(a__isNat(V1),V2) 15: a__U62(tt(),V2) -> a__U63(a__isNatIList(V2)) 16: a__U63(tt()) -> tt() 17: a__U71(tt(),L) -> s(a__length(mark(L))) 18: a__U81(tt()) -> nil() 19: a__U91(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) 20: a__and(tt(),X) -> mark(X) 21: a__isNat(0()) -> tt() 22: a__isNat(length(V1)) -> a__U11(a__isNatIListKind(V1),V1) 23: a__isNat(s(V1)) -> a__U21(a__isNatKind(V1),V1) 24: a__isNatIList(V) -> a__U31(a__isNatIListKind(V),V) 25: a__isNatIList(zeros()) -> tt() 26: a__isNatIList(cons(V1,V2)) -> a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) 27: a__isNatIListKind(nil()) -> tt() 28: a__isNatIListKind(zeros()) -> tt() 29: a__isNatIListKind(cons(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) 30: a__isNatIListKind(take(V1,V2)) -> a__and(a__isNatKind(V1),isNatIListKind(V2)) 31: a__isNatKind(0()) -> tt() 32: a__isNatKind(length(V1)) -> a__isNatIListKind(V1) 33: a__isNatKind(s(V1)) -> a__isNatKind(V1) 34: a__isNatList(nil()) -> tt() 35: a__isNatList(cons(V1,V2)) -> a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) 36: a__isNatList(take(V1,V2)) -> a__U61(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) 37: a__length(nil()) -> 0() 38: a__length(cons(N,L)) -> a__U71(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) 39: a__take(0(),IL) -> a__U81(a__and(a__isNatIList(IL),isNatIListKind(IL))) 40: a__take(s(M),cons(N,IL)) -> a__U91(a__and(a__and(a__isNatIList(IL),isNatIListKind(IL)),and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N)))),IL,M,N) 41: mark(zeros()) -> a__zeros() 42: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) 43: mark(U12(X)) -> a__U12(mark(X)) 44: mark(isNatList(X)) -> a__isNatList(X) 45: mark(U21(X1,X2)) -> a__U21(mark(X1),X2) 46: mark(U22(X)) -> a__U22(mark(X)) 47: mark(isNat(X)) -> a__isNat(X) 48: mark(U31(X1,X2)) -> a__U31(mark(X1),X2) 49: mark(U32(X)) -> a__U32(mark(X)) 50: mark(U41(X1,X2,X3)) -> a__U41(mark(X1),X2,X3) 51: mark(U42(X1,X2)) -> a__U42(mark(X1),X2) 52: mark(U43(X)) -> a__U43(mark(X)) 53: mark(isNatIList(X)) -> a__isNatIList(X) 54: mark(U51(X1,X2,X3)) -> a__U51(mark(X1),X2,X3) 55: mark(U52(X1,X2)) -> a__U52(mark(X1),X2) 56: mark(U53(X)) -> a__U53(mark(X)) 57: mark(U61(X1,X2,X3)) -> a__U61(mark(X1),X2,X3) 58: mark(U62(X1,X2)) -> a__U62(mark(X1),X2) 59: mark(U63(X)) -> a__U63(mark(X)) 60: mark(U71(X1,X2)) -> a__U71(mark(X1),X2) 61: mark(length(X)) -> a__length(mark(X)) 62: mark(U81(X)) -> a__U81(mark(X)) 63: mark(U91(X1,X2,X3,X4)) -> a__U91(mark(X1),X2,X3,X4) 64: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) 65: mark(and(X1,X2)) -> a__and(mark(X1),X2) 66: mark(isNatIListKind(X)) -> a__isNatIListKind(X) 67: mark(isNatKind(X)) -> a__isNatKind(X) 68: mark(cons(X1,X2)) -> cons(mark(X1),X2) 69: mark(0()) -> 0() 70: mark(tt()) -> tt() 71: mark(s(X)) -> s(mark(X)) 72: mark(nil()) -> nil() 73: a__zeros() -> zeros() 74: a__U11(X1,X2) -> U11(X1,X2) 75: a__U12(X) -> U12(X) 76: a__isNatList(X) -> isNatList(X) 77: a__U21(X1,X2) -> U21(X1,X2) 78: a__U22(X) -> U22(X) 79: a__isNat(X) -> isNat(X) 80: a__U31(X1,X2) -> U31(X1,X2) 81: a__U32(X) -> U32(X) 82: a__U41(X1,X2,X3) -> U41(X1,X2,X3) 83: a__U42(X1,X2) -> U42(X1,X2) 84: a__U43(X) -> U43(X) 85: a__isNatIList(X) -> isNatIList(X) 86: a__U51(X1,X2,X3) -> U51(X1,X2,X3) 87: a__U52(X1,X2) -> U52(X1,X2) 88: a__U53(X) -> U53(X) 89: a__U61(X1,X2,X3) -> U61(X1,X2,X3) 90: a__U62(X1,X2) -> U62(X1,X2) 91: a__U63(X) -> U63(X) 92: a__U71(X1,X2) -> U71(X1,X2) 93: a__length(X) -> length(X) 94: a__U81(X) -> U81(X) 95: a__U91(X1,X2,X3,X4) -> U91(X1,X2,X3,X4) 96: a__take(X1,X2) -> take(X1,X2) 97: a__and(X1,X2) -> and(X1,X2) 98: a__isNatIListKind(X) -> isNatIListKind(X) 99: a__isNatKind(X) -> isNatKind(X) Number of strict rules: 99 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #a__U11(tt(),V1) -> #a__U12(a__isNatList(V1)) #2: #a__U11(tt(),V1) -> #a__isNatList(V1) #3: #mark(U12(X)) -> #a__U12(mark(X)) #4: #mark(U12(X)) -> #mark(X) #5: #a__isNatIListKind(cons(V1,V2)) -> #a__and(a__isNatKind(V1),isNatIListKind(V2)) #6: #a__isNatIListKind(cons(V1,V2)) -> #a__isNatKind(V1) #7: #a__isNatList(cons(V1,V2)) -> #a__U51(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) #8: #a__isNatList(cons(V1,V2)) -> #a__and(a__isNatKind(V1),isNatIListKind(V2)) #9: #a__isNatList(cons(V1,V2)) -> #a__isNatKind(V1) #10: #mark(isNatIListKind(X)) -> #a__isNatIListKind(X) #11: #mark(U22(X)) -> #a__U22(mark(X)) #12: #mark(U22(X)) -> #mark(X) #13: #mark(U11(X1,X2)) -> #a__U11(mark(X1),X2) #14: #mark(U11(X1,X2)) -> #mark(X1) #15: #mark(zeros()) -> #a__zeros() #16: #mark(isNat(X)) -> #a__isNat(X) #17: #mark(isNatIList(X)) -> #a__isNatIList(X) #18: #mark(s(X)) -> #mark(X) #19: #mark(U31(X1,X2)) -> #a__U31(mark(X1),X2) #20: #mark(U31(X1,X2)) -> #mark(X1) #21: #mark(U62(X1,X2)) -> #a__U62(mark(X1),X2) #22: #mark(U62(X1,X2)) -> #mark(X1) #23: #mark(length(X)) -> #a__length(mark(X)) #24: #mark(length(X)) -> #mark(X) #25: #a__length(cons(N,L)) -> #a__U71(a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))),L) #26: #a__length(cons(N,L)) -> #a__and(a__and(a__isNatList(L),isNatIListKind(L)),and(isNat(N),isNatKind(N))) #27: #a__length(cons(N,L)) -> #a__and(a__isNatList(L),isNatIListKind(L)) #28: #a__length(cons(N,L)) -> #a__isNatList(L) #29: #a__U31(tt(),V) -> #a__U32(a__isNatList(V)) #30: #a__U31(tt(),V) -> #a__isNatList(V) #31: #mark(U63(X)) -> #a__U63(mark(X)) #32: #mark(U63(X)) -> #mark(X) #33: #mark(U52(X1,X2)) -> #a__U52(mark(X1),X2) #34: #mark(U52(X1,X2)) -> #mark(X1) #35: #mark(isNatKind(X)) -> #a__isNatKind(X) #36: #a__take(s(M),cons(N,IL)) -> #a__U91(a__and(a__and(a__isNatIList(IL),isNatIListKind(IL)),and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N)))),IL,M,N) #37: #a__take(s(M),cons(N,IL)) -> #a__and(a__and(a__isNatIList(IL),isNatIListKind(IL)),and(and(isNat(M),isNatKind(M)),and(isNat(N),isNatKind(N)))) #38: #a__take(s(M),cons(N,IL)) -> #a__and(a__isNatIList(IL),isNatIListKind(IL)) #39: #a__take(s(M),cons(N,IL)) -> #a__isNatIList(IL) #40: #mark(U42(X1,X2)) -> #a__U42(mark(X1),X2) #41: #mark(U42(X1,X2)) -> #mark(X1) #42: #a__U42(tt(),V2) -> #a__U43(a__isNatIList(V2)) #43: #a__U42(tt(),V2) -> #a__isNatIList(V2) #44: #a__U51(tt(),V1,V2) -> #a__U52(a__isNat(V1),V2) #45: #a__U51(tt(),V1,V2) -> #a__isNat(V1) #46: #mark(U61(X1,X2,X3)) -> #a__U61(mark(X1),X2,X3) #47: #mark(U61(X1,X2,X3)) -> #mark(X1) #48: #a__isNatIList(V) -> #a__U31(a__isNatIListKind(V),V) #49: #a__isNatIList(V) -> #a__isNatIListKind(V) #50: #a__isNat(s(V1)) -> #a__U21(a__isNatKind(V1),V1) #51: #a__isNat(s(V1)) -> #a__isNatKind(V1) #52: #mark(U21(X1,X2)) -> #a__U21(mark(X1),X2) #53: #mark(U21(X1,X2)) -> #mark(X1) #54: #a__U52(tt(),V2) -> #a__U53(a__isNatList(V2)) #55: #a__U52(tt(),V2) -> #a__isNatList(V2) #56: #mark(U53(X)) -> #a__U53(mark(X)) #57: #mark(U53(X)) -> #mark(X) #58: #a__U61(tt(),V1,V2) -> #a__U62(a__isNat(V1),V2) #59: #a__U61(tt(),V1,V2) -> #a__isNat(V1) #60: #mark(U81(X)) -> #a__U81(mark(X)) #61: #mark(U81(X)) -> #mark(X) #62: #a__isNatIListKind(take(V1,V2)) -> #a__and(a__isNatKind(V1),isNatIListKind(V2)) #63: #a__isNatIListKind(take(V1,V2)) -> #a__isNatKind(V1) #64: #mark(U43(X)) -> #a__U43(mark(X)) #65: #mark(U43(X)) -> #mark(X) #66: #mark(U32(X)) -> #a__U32(mark(X)) #67: #mark(U32(X)) -> #mark(X) #68: #a__and(tt(),X) -> #mark(X) #69: #a__take(0(),IL) -> #a__U81(a__and(a__isNatIList(IL),isNatIListKind(IL))) #70: #a__take(0(),IL) -> #a__and(a__isNatIList(IL),isNatIListKind(IL)) #71: #a__take(0(),IL) -> #a__isNatIList(IL) #72: #mark(take(X1,X2)) -> #a__take(mark(X1),mark(X2)) #73: #mark(take(X1,X2)) -> #mark(X1) #74: #mark(take(X1,X2)) -> #mark(X2) #75: #a__isNatKind(s(V1)) -> #a__isNatKind(V1) #76: #mark(isNatList(X)) -> #a__isNatList(X) #77: #mark(and(X1,X2)) -> #a__and(mark(X1),X2) #78: #mark(and(X1,X2)) -> #mark(X1) #79: #a__isNat(length(V1)) -> #a__U11(a__isNatIListKind(V1),V1) #80: #a__isNat(length(V1)) -> #a__isNatIListKind(V1) #81: #mark(U71(X1,X2)) -> #a__U71(mark(X1),X2) #82: #mark(U71(X1,X2)) -> #mark(X1) #83: #a__U71(tt(),L) -> #a__length(mark(L)) #84: #a__U71(tt(),L) -> #mark(L) #85: #a__isNatKind(length(V1)) -> #a__isNatIListKind(V1) #86: #a__U91(tt(),IL,M,N) -> #mark(N) #87: #mark(U91(X1,X2,X3,X4)) -> #a__U91(mark(X1),X2,X3,X4) #88: #mark(U91(X1,X2,X3,X4)) -> #mark(X1) #89: #a__isNatIList(cons(V1,V2)) -> #a__U41(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) #90: #a__isNatIList(cons(V1,V2)) -> #a__and(a__isNatKind(V1),isNatIListKind(V2)) #91: #a__isNatIList(cons(V1,V2)) -> #a__isNatKind(V1) #92: #mark(cons(X1,X2)) -> #mark(X1) #93: #a__isNatList(take(V1,V2)) -> #a__U61(a__and(a__isNatKind(V1),isNatIListKind(V2)),V1,V2) #94: #a__isNatList(take(V1,V2)) -> #a__and(a__isNatKind(V1),isNatIListKind(V2)) #95: #a__isNatList(take(V1,V2)) -> #a__isNatKind(V1) #96: #mark(U51(X1,X2,X3)) -> #a__U51(mark(X1),X2,X3) #97: #mark(U51(X1,X2,X3)) -> #mark(X1) #98: #a__U41(tt(),V1,V2) -> #a__U42(a__isNat(V1),V2) #99: #a__U41(tt(),V1,V2) -> #a__isNat(V1) #100: #a__U62(tt(),V2) -> #a__U63(a__isNatIList(V2)) #101: #a__U62(tt(),V2) -> #a__isNatIList(V2) #102: #a__U21(tt(),V1) -> #a__U22(a__isNat(V1)) #103: #a__U21(tt(),V1) -> #a__isNat(V1) #104: #mark(U41(X1,X2,X3)) -> #a__U41(mark(X1),X2,X3) #105: #mark(U41(X1,X2,X3)) -> #mark(X1) Number of SCCs: 1, DPs: 90, edges: 1323 SCC { #2 #4..10 #12..14 #16..28 #30 #32..41 #43..53 #55 #57..59 #61..63 #65 #67 #68 #70..99 #101 #103..105 } Removing DPs: Order(PosReal,>,Sum)... succeeded. #a__isNatKind(x1) weight: 0 isNatKind(x1) weight: 0 a__U63(x1) weight: x1 U21(x1,x2) weight: x1 isNatList(x1) weight: 0 #a__U71(x1,x2) weight: (/ 1 4) + x2 U11(x1,x2) weight: x1 s(x1) weight: x1 #a__U31(x1,x2) weight: 0 a__isNatIList(x1) weight: 0 #a__isNatIListKind(x1) weight: 0 U42(x1,x2) weight: x1 U91(x1,x2,x3,x4) weight: (/ 3 4) + x1 + x2 + x3 + x4 #a__isNat(x1) weight: 0 take(x1,x2) weight: (/ 3 4) + x1 + x2 U71(x1,x2) weight: (/ 1 2) + x1 + x2 a__U62(x1,x2) weight: x1 and(x1,x2) weight: x1 + x2 isNatIList(x1) weight: 0 #a__U43(x1) weight: 0 U43(x1) weight: x1 #a__U51(x1,x2,x3) weight: 0 U63(x1) weight: x1 a__U22(x1) weight: x1 #a__U11(x1,x2) weight: 0 zeros() weight: 0 a__U31(x1,x2) weight: x1 a__U51(x1,x2,x3) weight: x1 a__U81(x1) weight: (/ 1 4) + x1 #a__U53(x1) weight: 0 #a__take(x1,x2) weight: (/ 1 2) + x2 U12(x1) weight: x1 a__isNatList(x1) weight: 0 a__U43(x1) weight: x1 #a__U62(x1,x2) weight: 0 #a__U42(x1,x2) weight: 0 a__U41(x1,x2,x3) weight: x1 #a__U12(x1) weight: 0 #a__U21(x1,x2) weight: 0 #a__isNatIList(x1) weight: 0 #a__U81(x1) weight: 0 #a__U61(x1,x2,x3) weight: 0 #mark(x1) weight: x1 0() weight: 0 #a__and(x1,x2) weight: x2 #a__zeros() weight: 0 a__U21(x1,x2) weight: x1 a__U32(x1) weight: x1 a__U91(x1,x2,x3,x4) weight: (/ 3 4) + x1 + x2 + x3 + x4 nil() weight: 0 isNatIListKind(x1) weight: 0 U62(x1,x2) weight: x1 #a__U52(x1,x2) weight: 0 mark(x1) weight: x1 a__U11(x1,x2) weight: x1 U32(x1) weight: x1 a__U53(x1) weight: x1 a__U42(x1,x2) weight: x1 a__U52(x1,x2) weight: x1 #a__length(x1) weight: (/ 1 4) + x1 a__U12(x1) weight: x1 a__isNatIListKind(x1) weight: 0 #a__U63(x1) weight: 0 isNat(x1) weight: 0 U52(x1,x2) weight: x1 U61(x1,x2,x3) weight: x1 #a__U22(x1) weight: 0 U31(x1,x2) weight: x1 #a__isNatList(x1) weight: 0 a__U71(x1,x2) weight: (/ 1 2) + x1 + x2 cons(x1,x2) weight: x1 + x2 a__U61(x1,x2,x3) weight: x1 a__take(x1,x2) weight: (/ 3 4) + x1 + x2 U81(x1) weight: (/ 1 4) + x1 #a__U41(x1,x2,x3) weight: 0 tt() weight: 0 a__isNat(x1) weight: 0 a__isNatKind(x1) weight: 0 U22(x1) weight: x1 U51(x1,x2,x3) weight: x1 a__and(x1,x2) weight: x1 + x2 U53(x1) weight: x1 length(x1) weight: (/ 1 2) + x1 U41(x1,x2,x3) weight: x1 #a__U32(x1) weight: 0 a__zeros() weight: 0 #a__U91(x1,x2,x3,x4) weight: (/ 1 4) + x4 a__length(x1) weight: (/ 1 2) + x1 Usable rules: { 1..99 } Removed DPs: #23 #24 #26..28 #36..39 #61 #70..74 #81 #82 #84 #86..88 Number of SCCs: 2, DPs: 69, edges: 750 SCC { #25 #83 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... Order(PosReal,>,Sum-Sum; PosReal,≥,Sum-Sum)...