YES TRS: a__and(tt(),X) -> mark(X) a__plus(N,0()) -> mark(N) a__plus(N,s(M)) -> s(a__plus(mark(N),mark(M))) mark(and(X1,X2)) -> a__and(mark(X1),X2) mark(plus(X1,X2)) -> a__plus(mark(X1),mark(X2)) mark(tt()) -> tt() mark(0()) -> 0() mark(s(X)) -> s(mark(X)) a__and(X1,X2) -> and(X1,X2) a__plus(X1,X2) -> plus(X1,X2) linear polynomial interpretations on N: a__and_A(x1,x2) = x1 + x2 + 2 a__and#_A(x1,x2) = x2 + 2 tt_A = 1 tt#_A = 0 mark_A(x1) = x1 mark#_A(x1) = x1 + 1 a__plus_A(x1,x2) = x1 + x2 + 1 a__plus#_A(x1,x2) = x1 + x2 + 1 0_A = 1 0#_A = 3 s_A(x1) = x1 + 1 s#_A(x1) = 0 and_A(x1,x2) = x1 + x2 + 2 and#_A(x1,x2) = x2 plus_A(x1,x2) = x1 + x2 + 1 plus#_A(x1,x2) = 0 precedence: plus > a__plus > s > mark > tt = 0 = and > a__and