YES TRS: a(h(),h(),h(),x) -> s(x) a(l,x,s(y),h()) -> a(l,x,y,s(h())) a(l,x,s(y),s(z)) -> a(l,x,y,a(l,x,s(y),z)) a(l,s(x),h(),z) -> a(l,x,z,z) a(s(l),h(),h(),z) -> a(l,z,h(),z) +(x,h()) -> x +(h(),x) -> x +(s(x),s(y)) -> s(s(+(x,y))) +(+(x,y),z) -> +(x,+(y,z)) s(h()) -> 1() app(nil(),k) -> k app(l,nil()) -> l app(cons(x,l),k) -> cons(x,app(l,k)) sum(cons(x,nil())) -> cons(x,nil()) sum(cons(x,cons(y,l))) -> sum(cons(a(x,y,h(),h()),l)) linear polynomial interpretations on N: a_A(x1,x2,x3,x4) = x4 a#_A(x1,x2,x3,x4) = x1 + 2 h_A = 1 h#_A = 3 s_A(x1) = x1 s#_A(x1) = 1 +_A(x1,x2) = x1 + x2 + 1 +#_A(x1,x2) = x1 + x2 + 2 1_A = 0 1#_A = 0 app_A(x1,x2) = x1 + x2 + 1 app#_A(x1,x2) = 5 nil_A = 1 nil#_A = 0 cons_A(x1,x2) = x1 + x2 + 2 cons#_A(x1,x2) = 4 sum_A(x1) = x1 sum#_A(x1) = x1 + 2 precedence: app = sum > cons > a = nil > s = + > h > 1