YES TRS: xor(x,F()) -> x xor(x,neg(x)) -> F() and(x,T()) -> x and(x,F()) -> F() and(x,x) -> x and(xor(x,y),z) -> xor(and(x,z),and(y,z)) xor(x,x) -> F() impl(x,y) -> xor(and(x,y),xor(x,T())) or(x,y) -> xor(and(x,y),xor(x,y)) equiv(x,y) -> xor(x,xor(y,T())) neg(x) -> xor(x,T()) max/plus interpretations on N: xor_A(x1,x2) = max{3, x1, x2} xor#_A(x1,x2) = max{3, x1, x2} F_A = 1 F#_A = 1 neg_A(x1) = max{2, 3 + x1} neg#_A(x1) = max{2, 3 + x1} and_A(x1,x2) = max{3, 2 + x1, 1 + x2} and#_A(x1,x2) = max{3, 2 + x1, 1 + x2} T_A = 3 T#_A = 3 impl_A(x1,x2) = max{4, 4 + x1, 4 + x2} impl#_A(x1,x2) = max{4, 4 + x1, 4 + x2} or_A(x1,x2) = max{2, 3 + x1, 2 + x2} or#_A(x1,x2) = max{2, 3 + x1, 2 + x2} equiv_A(x1,x2) = max{4, 2 + x1, 2 + x2} equiv#_A(x1,x2) = max{4, 2 + x1, 2 + x2} precedence: neg > F = impl = or > and = equiv > xor = T