Input TRS: 1: a__zeros() -> cons(0(),zeros()) 2: a__U11(tt(),L) -> s(a__length(mark(L))) 3: a__U21(tt()) -> nil() 4: a__U31(tt(),IL,M,N) -> cons(mark(N),take(M,IL)) 5: a__and(tt(),X) -> mark(X) 6: a__isNat(0()) -> tt() 7: a__isNat(length(V1)) -> a__isNatList(V1) 8: a__isNat(s(V1)) -> a__isNat(V1) 9: a__isNatIList(V) -> a__isNatList(V) 10: a__isNatIList(zeros()) -> tt() 11: a__isNatIList(cons(V1,V2)) -> a__and(a__isNat(V1),isNatIList(V2)) 12: a__isNatList(nil()) -> tt() 13: a__isNatList(cons(V1,V2)) -> a__and(a__isNat(V1),isNatList(V2)) 14: a__isNatList(take(V1,V2)) -> a__and(a__isNat(V1),isNatIList(V2)) 15: a__length(nil()) -> 0() 16: a__length(cons(N,L)) -> a__U11(a__and(a__isNatList(L),isNat(N)),L) 17: a__take(0(),IL) -> a__U21(a__isNatIList(IL)) 18: a__take(s(M),cons(N,IL)) -> a__U31(a__and(a__isNatIList(IL),and(isNat(M),isNat(N))),IL,M,N) 19: mark(zeros()) -> a__zeros() 20: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) 21: mark(length(X)) -> a__length(mark(X)) 22: mark(U21(X)) -> a__U21(mark(X)) 23: mark(U31(X1,X2,X3,X4)) -> a__U31(mark(X1),X2,X3,X4) 24: mark(take(X1,X2)) -> a__take(mark(X1),mark(X2)) 25: mark(and(X1,X2)) -> a__and(mark(X1),X2) 26: mark(isNat(X)) -> a__isNat(X) 27: mark(isNatList(X)) -> a__isNatList(X) 28: mark(isNatIList(X)) -> a__isNatIList(X) 29: mark(cons(X1,X2)) -> cons(mark(X1),X2) 30: mark(0()) -> 0() 31: mark(tt()) -> tt() 32: mark(s(X)) -> s(mark(X)) 33: mark(nil()) -> nil() 34: a__zeros() -> zeros() 35: a__U11(X1,X2) -> U11(X1,X2) 36: a__length(X) -> length(X) 37: a__U21(X) -> U21(X) 38: a__U31(X1,X2,X3,X4) -> U31(X1,X2,X3,X4) 39: a__take(X1,X2) -> take(X1,X2) 40: a__and(X1,X2) -> and(X1,X2) 41: a__isNat(X) -> isNat(X) 42: a__isNatList(X) -> isNatList(X) 43: a__isNatIList(X) -> isNatIList(X) Number of strict rules: 43 Direct Order(PosReal,>,Poly) ... failed. Freezing ... failed. Dependency Pairs: #1: #a__U11(tt(),L) -> #a__length(mark(L)) #2: #a__U11(tt(),L) -> #mark(L) #3: #mark(cons(X1,X2)) -> #mark(X1) #4: #a__isNatList(cons(V1,V2)) -> #a__and(a__isNat(V1),isNatList(V2)) #5: #a__isNatList(cons(V1,V2)) -> #a__isNat(V1) #6: #a__isNatIList(V) -> #a__isNatList(V) #7: #a__isNatIList(cons(V1,V2)) -> #a__and(a__isNat(V1),isNatIList(V2)) #8: #a__isNatIList(cons(V1,V2)) -> #a__isNat(V1) #9: #mark(take(X1,X2)) -> #a__take(mark(X1),mark(X2)) #10: #mark(take(X1,X2)) -> #mark(X1) #11: #mark(take(X1,X2)) -> #mark(X2) #12: #mark(U31(X1,X2,X3,X4)) -> #a__U31(mark(X1),X2,X3,X4) #13: #mark(U31(X1,X2,X3,X4)) -> #mark(X1) #14: #a__isNatList(take(V1,V2)) -> #a__and(a__isNat(V1),isNatIList(V2)) #15: #a__isNatList(take(V1,V2)) -> #a__isNat(V1) #16: #mark(and(X1,X2)) -> #a__and(mark(X1),X2) #17: #mark(and(X1,X2)) -> #mark(X1) #18: #mark(U11(X1,X2)) -> #a__U11(mark(X1),X2) #19: #mark(U11(X1,X2)) -> #mark(X1) #20: #a__isNat(length(V1)) -> #a__isNatList(V1) #21: #a__and(tt(),X) -> #mark(X) #22: #mark(isNatIList(X)) -> #a__isNatIList(X) #23: #mark(U21(X)) -> #a__U21(mark(X)) #24: #mark(U21(X)) -> #mark(X) #25: #mark(isNatList(X)) -> #a__isNatList(X) #26: #a__take(0(),IL) -> #a__U21(a__isNatIList(IL)) #27: #a__take(0(),IL) -> #a__isNatIList(IL) #28: #mark(s(X)) -> #mark(X) #29: #mark(zeros()) -> #a__zeros() #30: #mark(isNat(X)) -> #a__isNat(X) #31: #mark(length(X)) -> #a__length(mark(X)) #32: #mark(length(X)) -> #mark(X) #33: #a__length(cons(N,L)) -> #a__U11(a__and(a__isNatList(L),isNat(N)),L) #34: #a__length(cons(N,L)) -> #a__and(a__isNatList(L),isNat(N)) #35: #a__length(cons(N,L)) -> #a__isNatList(L) #36: #a__isNat(s(V1)) -> #a__isNat(V1) #37: #a__U31(tt(),IL,M,N) -> #mark(N) #38: #a__take(s(M),cons(N,IL)) -> #a__U31(a__and(a__isNatIList(IL),and(isNat(M),isNat(N))),IL,M,N) #39: #a__take(s(M),cons(N,IL)) -> #a__and(a__isNatIList(IL),and(isNat(M),isNat(N))) #40: #a__take(s(M),cons(N,IL)) -> #a__isNatIList(IL) Number of SCCs: 1, DPs: 37, edges: 261 SCC { #1..22 #24 #25 #27 #28 #30..40 } Removing DPs: Order(PosReal,>,Sum)... succeeded. U21(x1) weight: (/ 1 4) + x1 isNatList(x1) weight: 0 U11(x1,x2) weight: x1 + x2 s(x1) weight: x1 #a__U31(x1,x2,x3,x4) weight: (/ 1 4) + x2 + x4 a__isNatIList(x1) weight: 0 #a__isNat(x1) weight: 0 take(x1,x2) weight: (/ 3 4) + x1 + x2 and(x1,x2) weight: x1 + x2 isNatIList(x1) weight: 0 #a__U11(x1,x2) weight: x2 zeros() weight: 0 a__U31(x1,x2,x3,x4) weight: (/ 3 4) + x1 + x2 + x3 + x4 #a__take(x1,x2) weight: (/ 1 2) + x2 a__isNatList(x1) weight: 0 #a__U21(x1) weight: 0 #a__isNatIList(x1) weight: 0 #mark(x1) weight: x1 0() weight: 0 #a__and(x1,x2) weight: x2 #a__zeros() weight: 0 a__U21(x1) weight: (/ 1 4) + x1 nil() weight: 0 mark(x1) weight: x1 a__U11(x1,x2) weight: x1 + x2 #a__length(x1) weight: x1 isNat(x1) weight: 0 U31(x1,x2,x3,x4) weight: (/ 3 4) + x1 + x2 + x3 + x4 #a__isNatList(x1) weight: 0 cons(x1,x2) weight: x1 + x2 a__take(x1,x2) weight: (/ 3 4) + x1 + x2 tt() weight: 0 a__isNat(x1) weight: 0 a__and(x1,x2) weight: x1 + x2 length(x1) weight: x1 a__zeros() weight: 0 a__length(x1) weight: x1 Usable rules: { 1..43 } Removed DPs: #9..13 #24 #27 #37..40 Number of SCCs: 1, DPs: 26, edges: 121 SCC { #1..8 #14..22 #25 #28 #30..36 } Removing DPs: Order(PosReal,>,Sum)... succeeded. U21(x1) weight: (/ 1 4) + x1 isNatList(x1) weight: 0 U11(x1,x2) weight: (/ 1 2) + x1 + x2 s(x1) weight: x1 #a__U31(x1,x2,x3,x4) weight: (/ 1 4) a__isNatIList(x1) weight: 0 #a__isNat(x1) weight: 0 take(x1,x2) weight: (/ 3 4) + x1 + x2 and(x1,x2) weight: x1 + x2 isNatIList(x1) weight: 0 #a__U11(x1,x2) weight: (/ 1 4) + x2 zeros() weight: 0 a__U31(x1,x2,x3,x4) weight: (/ 3 4) + x2 + x3 + x4 #a__take(x1,x2) weight: (/ 1 2) + x2 a__isNatList(x1) weight: 0 #a__U21(x1) weight: 0 #a__isNatIList(x1) weight: 0 #mark(x1) weight: x1 0() weight: 0 #a__and(x1,x2) weight: x2 #a__zeros() weight: 0 a__U21(x1) weight: (/ 1 4) + x1 nil() weight: 0 mark(x1) weight: x1 a__U11(x1,x2) weight: (/ 1 2) + x1 + x2 #a__length(x1) weight: (/ 1 4) + x1 isNat(x1) weight: 0 U31(x1,x2,x3,x4) weight: (/ 3 4) + x2 + x3 + x4 #a__isNatList(x1) weight: 0 cons(x1,x2) weight: x1 + x2 a__take(x1,x2) weight: (/ 3 4) + x1 + x2 tt() weight: 0 a__isNat(x1) weight: 0 a__and(x1,x2) weight: x1 + x2 length(x1) weight: (/ 1 2) + x1 a__zeros() weight: 0 a__length(x1) weight: (/ 1 2) + x1 Usable rules: { 1..43 } Removed DPs: #2 #18 #19 #31 #32 #34 #35 Number of SCCs: 2, DPs: 19, edges: 59 SCC { #1 #33 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... Order(PosReal,>,Sum-Sum; PosReal,≥,Sum-Sum)... Order(PosReal,>,Sum-Sum; NegReal,≥,Sum)... succeeded. U21(x1) weight: max{0, (- (/ 1 8)) + x1_1}; 0 isNatList(x1) weight: (max (/ 1 4) 0); x1_2 U11(x1,x2) weight: max{0, (/ 1 2) + x2_1 + x1_2}; x1_2 s(x1) weight: max{0, (/ 1 4) + x1_1}; 0 #a__U31(x1,x2,x3,x4) weight: 0; 0 a__isNatIList(x1) weight: (max (/ 1 4) 0); 0 #a__isNat(x1) weight: 0; 0 take(x1,x2) weight: max{0, (/ 1 8) + x1_1}; 0 and(x1,x2) weight: max{0, x2_1}; x2_2 + x1_2 isNatIList(x1) weight: (max (/ 1 4) 0); 0 #a__U11(x1,x2) weight: max{0, (/ 1 4) + x2_1 + x1_2}; 0 zeros() weight: (/ 1 8); (- (/ 1 4)) a__U31(x1,x2,x3,x4) weight: max{0, (/ 3 8) + x3_1 + x1_2}; 0 #a__take(x1,x2) weight: 0; 0 a__isNatList(x1) weight: (max (/ 1 4) 0); x1_2 #a__U21(x1) weight: 0; 0 #a__isNatIList(x1) weight: 0; 0 #mark(x1) weight: 0; 0 0() weight: 0; (- (/ 1 8)) #a__and(x1,x2) weight: 0; 0 #a__zeros() weight: 0; 0 a__U21(x1) weight: max{0, (- (/ 1 8)) + x1_1}; 0 nil() weight: 0; 0 mark(x1) weight: max{0, x1_1}; x1_2 a__U11(x1,x2) weight: max{0, (/ 1 2) + x2_1 + x1_2}; x1_2 #a__length(x1) weight: max{0, (/ 1 8) + x1_1}; 0 isNat(x1) weight: max{0, x1_1}; 0 U31(x1,x2,x3,x4) weight: max{0, (/ 3 8) + x3_1 + x1_2}; 0 #a__isNatList(x1) weight: 0; 0 cons(x1,x2) weight: max{0, (/ 1 4) + x2_1 + x2_2}; x2_2 a__take(x1,x2) weight: max{0, (/ 1 8) + x1_1}; 0 tt() weight: 0; 0 a__isNat(x1) weight: max{0, x1_1}; 0 a__and(x1,x2) weight: max{0, x2_1}; x2_2 + x1_2 length(x1) weight: max{0, (/ 1 4) + x1_1}; 0 a__zeros() weight: (/ 1 8); (- (/ 1 4)) a__length(x1) weight: max{0, (/ 1 4) + x1_1}; 0 Usable rules: { 1..43 } Removed DPs: #1 #33 Number of SCCs: 1, DPs: 17, edges: 57 SCC { #3..8 #14..17 #20..22 #25 #28 #30 #36 } Removing DPs: Order(PosReal,>,Sum)... succeeded. U21(x1) weight: (/ 1 8) + x1 isNatList(x1) weight: (/ 5 8) + x1 U11(x1,x2) weight: (/ 1 8) s(x1) weight: (/ 1 16) + x1 #a__U31(x1,x2,x3,x4) weight: (/ 1 16) a__isNatIList(x1) weight: (/ 1 8) #a__isNat(x1) weight: (/ 7 16) + x1 take(x1,x2) weight: (/ 1 4) + x1 + x2 and(x1,x2) weight: (/ 1 8) + x1 + x2 isNatIList(x1) weight: (/ 11 16) + x1 #a__U11(x1,x2) weight: (/ 1 16) zeros() weight: 0 a__U31(x1,x2,x3,x4) weight: (/ 7 16) #a__take(x1,x2) weight: (/ 1 8) a__isNatList(x1) weight: (/ 3 8) + x1 #a__U21(x1) weight: 0 #a__isNatIList(x1) weight: (/ 5 8) + x1 #mark(x1) weight: x1 0() weight: 0 #a__and(x1,x2) weight: (/ 1 16) + x2 #a__zeros() weight: 0 a__U21(x1) weight: (/ 1 16) + x1 nil() weight: 0 mark(x1) weight: (/ 1 16) a__U11(x1,x2) weight: (/ 1 16) + x1 + x2 #a__length(x1) weight: 0 isNat(x1) weight: (/ 1 2) + x1 U31(x1,x2,x3,x4) weight: (/ 1 2) + x2 + x3 + x4 #a__isNatList(x1) weight: (/ 9 16) + x1 cons(x1,x2) weight: (/ 3 16) + x1 + x2 a__take(x1,x2) weight: (/ 1 8) + x1 + x2 tt() weight: 0 a__isNat(x1) weight: (/ 1 8) + x1 a__and(x1,x2) weight: x2 length(x1) weight: (/ 3 16) + x1 a__zeros() weight: 0 a__length(x1) weight: (/ 1 8) Usable rules: { } Removed DPs: #3..8 #14..17 #20..22 #25 #28 #30 #36 Number of SCCs: 0, DPs: 0, edges: 0 YES