Input TRS: 1: a__zeros() -> cons(0(),zeros()) 2: a__U11(tt(),L) -> s(a__length(mark(L))) 3: a__and(tt(),X) -> mark(X) 4: a__isNat(0()) -> tt() 5: a__isNat(length(V1)) -> a__isNatList(V1) 6: a__isNat(s(V1)) -> a__isNat(V1) 7: a__isNatIList(V) -> a__isNatList(V) 8: a__isNatIList(zeros()) -> tt() 9: a__isNatIList(cons(V1,V2)) -> a__and(a__isNat(V1),isNatIList(V2)) 10: a__isNatList(nil()) -> tt() 11: a__isNatList(cons(V1,V2)) -> a__and(a__isNat(V1),isNatList(V2)) 12: a__length(nil()) -> 0() 13: a__length(cons(N,L)) -> a__U11(a__and(a__isNatList(L),isNat(N)),L) 14: mark(zeros()) -> a__zeros() 15: mark(U11(X1,X2)) -> a__U11(mark(X1),X2) 16: mark(length(X)) -> a__length(mark(X)) 17: mark(and(X1,X2)) -> a__and(mark(X1),X2) 18: mark(isNat(X)) -> a__isNat(X) 19: mark(isNatList(X)) -> a__isNatList(X) 20: mark(isNatIList(X)) -> a__isNatIList(X) 21: mark(cons(X1,X2)) -> cons(mark(X1),X2) 22: mark(0()) -> 0() 23: mark(tt()) -> tt() 24: mark(s(X)) -> s(mark(X)) 25: mark(nil()) -> nil() 26: a__zeros() -> zeros() 27: a__U11(X1,X2) -> U11(X1,X2) 28: a__length(X) -> length(X) 29: a__and(X1,X2) -> and(X1,X2) 30: a__isNat(X) -> isNat(X) 31: a__isNatList(X) -> isNatList(X) 32: a__isNatIList(X) -> isNatIList(X) Number of strict rules: 32 Direct Order(PosReal,>,Poly) ... removes: 8 5 7 12 isNatList(x1) weight: x1 U11(x1,x2) weight: (/ 1 4) + x1 + x2 s(x1) weight: x1 a__isNatIList(x1) weight: (/ 1 4) + 2 * x1 and(x1,x2) weight: x1 + x2 isNatIList(x1) weight: (/ 1 4) + 2 * x1 zeros() weight: 0 a__isNatList(x1) weight: x1 0() weight: 0 nil() weight: 0 mark(x1) weight: x1 a__U11(x1,x2) weight: (/ 1 4) + x1 + x2 isNat(x1) weight: x1 cons(x1,x2) weight: x1 + 2 * x2 tt() weight: 0 a__isNat(x1) weight: x1 a__and(x1,x2) weight: x1 + x2 length(x1) weight: (/ 1 4) + x1 a__zeros() weight: 0 a__length(x1) weight: (/ 1 4) + x1 Number of strict rules: 28 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: #a__isNat(s(V1)) -> #a__isNat(V1) #4: #a__length(cons(N,L)) -> #a__U11(a__and(a__isNatList(L),isNat(N)),L) #5: #a__length(cons(N,L)) -> #a__and(a__isNatList(L),isNat(N)) #6: #a__length(cons(N,L)) -> #a__isNatList(L) #7: #a__isNatIList(cons(V1,V2)) -> #a__and(a__isNat(V1),isNatIList(V2)) #8: #a__isNatIList(cons(V1,V2)) -> #a__isNat(V1) #9: #a__isNatList(cons(V1,V2)) -> #a__and(a__isNat(V1),isNatList(V2)) #10: #a__isNatList(cons(V1,V2)) -> #a__isNat(V1) #11: #mark(s(X)) -> #mark(X) #12: #mark(zeros()) -> #a__zeros() #13: #mark(isNatIList(X)) -> #a__isNatIList(X) #14: #mark(and(X1,X2)) -> #a__and(mark(X1),X2) #15: #mark(and(X1,X2)) -> #mark(X1) #16: #mark(isNatList(X)) -> #a__isNatList(X) #17: #mark(cons(X1,X2)) -> #mark(X1) #18: #mark(length(X)) -> #a__length(mark(X)) #19: #mark(length(X)) -> #mark(X) #20: #a__and(tt(),X) -> #mark(X) #21: #mark(U11(X1,X2)) -> #a__U11(mark(X1),X2) #22: #mark(U11(X1,X2)) -> #mark(X1) #23: #mark(isNat(X)) -> #a__isNat(X) Number of SCCs: 2, DPs: 19, edges: 88 SCC { #3 } Removing DPs: Order(PosReal,>,Sum)... succeeded. isNatList(x1) weight: 0 U11(x1,x2) weight: 0 s(x1) weight: (/ 1 2) + x1 a__isNatIList(x1) weight: 0 #a__isNat(x1) weight: x1 and(x1,x2) weight: 0 isNatIList(x1) weight: 0 #a__U11(x1,x2) weight: 0 zeros() weight: 0 a__isNatList(x1) weight: 0 #a__isNatIList(x1) weight: 0 #mark(x1) weight: 0 0() weight: 0 #a__and(x1,x2) weight: 0 #a__zeros() weight: 0 nil() weight: 0 mark(x1) weight: 0 a__U11(x1,x2) weight: 0 #a__length(x1) weight: 0 isNat(x1) weight: 0 #a__isNatList(x1) weight: 0 cons(x1,x2) weight: 0 tt() weight: 0 a__isNat(x1) weight: 0 a__and(x1,x2) weight: 0 length(x1) weight: 0 a__zeros() weight: 0 a__length(x1) weight: 0 Usable rules: { } Removed DPs: #3 Number of SCCs: 1, DPs: 18, edges: 87 SCC { #1 #2 #4..7 #9 #11 #13..22 } Removing DPs: Order(PosReal,>,Sum)... succeeded. isNatList(x1) weight: 0 U11(x1,x2) weight: (/ 1 2) + x1 + x2 s(x1) weight: x1 a__isNatIList(x1) weight: (/ 1 4) #a__isNat(x1) weight: 0 and(x1,x2) weight: x1 + x2 isNatIList(x1) weight: (/ 1 4) #a__U11(x1,x2) weight: (/ 1 4) + x2 zeros() weight: 0 a__isNatList(x1) weight: 0 #a__isNatIList(x1) weight: (/ 1 4) #mark(x1) weight: x1 0() weight: 0 #a__and(x1,x2) weight: x2 #a__zeros() weight: 0 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 #a__isNatList(x1) weight: 0 cons(x1,x2) weight: 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..4 6 9..11 13..32 } Removed DPs: #2 #5 #6 #18 #19 #21 #22 Number of SCCs: 2, DPs: 11, edges: 31 SCC { #1 #4 } Removing DPs: Order(PosReal,>,Sum)... Order(PosReal,>,Max)... QLPOpS... Order(PosReal,>,MaxSum)... QWPOpS(PosReal,>,MaxSum)... Order(PosReal,>,Sum-Sum; PosReal,≥,Sum-Sum)... succeeded. isNatList(x1) weight: (/ 1 8) + x1_2; (/ 1 8) U11(x1,x2) weight: (/ 1 8); (/ 1 4) s(x1) weight: x1_1; (/ 1 8) + x1_1 a__isNatIList(x1) weight: (/ 1 4) + x1_2; (/ 1 4) + x1_2 #a__isNat(x1) weight: 0; 0 and(x1,x2) weight: (/ 1 8) + x2_1 + x1_1; (/ 1 8) isNatIList(x1) weight: (/ 1 8) + x1_2; (/ 1 8) #a__U11(x1,x2) weight: x2_1 + x1_2; 0 zeros() weight: (/ 1 8); (/ 1 8) a__isNatList(x1) weight: (/ 1 4) + x1_2; (/ 7 8) + x1_2 #a__isNatIList(x1) weight: 0; 0 #mark(x1) weight: 0; 0 0() weight: (/ 1 2); (/ 1 8) #a__and(x1,x2) weight: 0; 0 #a__zeros() weight: 0; 0 nil() weight: (/ 1 8); (/ 1 2) mark(x1) weight: (/ 5 8) + x1_1; (/ 3 4) + x1_1 a__U11(x1,x2) weight: (/ 1 8); (/ 1 4) #a__length(x1) weight: (/ 5 8) + x1_1; 0 isNat(x1) weight: (/ 1 8) + x1_1; (/ 1 8) #a__isNatList(x1) weight: 0; 0 cons(x1,x2) weight: x2_1 + x2_2 + x1_1; (/ 1 8) + x2_2 + x1_1 tt() weight: (/ 5 8); (/ 11 8) a__isNat(x1) weight: (/ 1 8) + x1_1; (/ 7 8) + x1_1 a__and(x1,x2) weight: (/ 1 8) + x2_1 + x1_1; (/ 1 8) + x2_1 + x1_1 length(x1) weight: (/ 1 8); (/ 1 8) a__zeros() weight: (/ 3 4); (/ 3 4) a__length(x1) weight: (/ 1 8); (/ 1 4) Usable rules: { 1..4 6 9..11 13..32 } Removed DPs: #1 #4 Number of SCCs: 1, DPs: 9, edges: 29 SCC { #7 #9 #11 #13..17 #20 } Removing DPs: Order(PosReal,>,Sum)... succeeded. isNatList(x1) weight: (/ 1 4) + x1 U11(x1,x2) weight: (/ 3 8) s(x1) weight: (/ 1 8) + x1 a__isNatIList(x1) weight: 0 #a__isNat(x1) weight: 0 and(x1,x2) weight: (/ 3 8) + x1 + x2 isNatIList(x1) weight: (/ 1 8) + x1 #a__U11(x1,x2) weight: (/ 1 8) zeros() weight: 0 a__isNatList(x1) weight: (/ 1 8) #a__isNatIList(x1) weight: x1 #mark(x1) weight: x1 0() weight: 0 #a__and(x1,x2) weight: (/ 1 8) + x2 #a__zeros() weight: 0 nil() weight: 0 mark(x1) weight: (/ 3 8) + x1 a__U11(x1,x2) weight: (/ 1 2) + x1 #a__length(x1) weight: 0 isNat(x1) weight: (/ 1 8) #a__isNatList(x1) weight: (/ 1 8) + x1 cons(x1,x2) weight: (/ 3 8) + x1 + x2 tt() weight: 0 a__isNat(x1) weight: (/ 5 8) + x1 a__and(x1,x2) weight: (/ 1 4) length(x1) weight: (/ 1 8) + x1 a__zeros() weight: 0 a__length(x1) weight: (/ 1 4) + x1 Usable rules: { } Removed DPs: #7 #9 #11 #13..17 #20 Number of SCCs: 0, DPs: 0, edges: 0 YES