Input TRS: 1: a__and(true(),X) -> mark(X) 2: a__and(false(),Y) -> false() 3: a__if(true(),X,Y) -> mark(X) 4: a__if(false(),X,Y) -> mark(Y) 5: a__add(0(),X) -> mark(X) 6: a__add(s(X),Y) -> s(add(X,Y)) 7: a__first(0(),X) -> nil() 8: a__first(s(X),cons(Y,Z)) -> cons(Y,first(X,Z)) 9: a__from(X) -> cons(X,from(s(X))) 10: mark(and(X1,X2)) -> a__and(mark(X1),X2) 11: mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3) 12: mark(add(X1,X2)) -> a__add(mark(X1),X2) 13: mark(first(X1,X2)) -> a__first(mark(X1),mark(X2)) 14: mark(from(X)) -> a__from(X) 15: mark(true()) -> true() 16: mark(false()) -> false() 17: mark(0()) -> 0() 18: mark(s(X)) -> s(X) 19: mark(nil()) -> nil() 20: mark(cons(X1,X2)) -> cons(X1,X2) 21: a__and(X1,X2) -> and(X1,X2) 22: a__if(X1,X2,X3) -> if(X1,X2,X3) 23: a__add(X1,X2) -> add(X1,X2) 24: a__first(X1,X2) -> first(X1,X2) 25: a__from(X) -> from(X) Number of strict rules: 25 Direct Order(PosReal,>,Poly) ... removes: 18 4 15 8 1 3 16 21 19 17 22 5 10 7 20 25 14 12 23 24 11 9 13 6 2 s(x1) weight: (/ 1 16) + x1 a__from(x1) weight: (/ 10587 8) + 2 * x1 and(x1,x2) weight: (/ 1 8) + x1 + x2 a__add(x1,x2) weight: (/ 3 16) + x1 + 2 * x2 false() weight: 0 true() weight: 0 0() weight: 0 if(x1,x2,x3) weight: (/ 147657 8) + x1 + x2 + x3 from(x1) weight: (/ 21171 16) + x1 nil() weight: 0 mark(x1) weight: (/ 1 16) + 2 * x1 first(x1,x2) weight: (/ 1 4) + x1 + 2 * x2 a__first(x1,x2) weight: (/ 5 16) + x1 + 2 * x2 cons(x1,x2) weight: (/ 1 16) + x1 + x2 add(x1,x2) weight: (/ 1 8) + x1 + x2 a__and(x1,x2) weight: (/ 3 16) + x1 + 2 * x2 a__if(x1,x2,x3) weight: (/ 295315 16) + x1 + 2 * x2 + 2 * x3 Number of strict rules: 0 YES