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{5, 2 + x1, 8} xor#_A(x1,x2) = max{5, 1, 6} F_A = 6 F#_A = 0 neg_A(x1) = max{1, 8 + x1} neg#_A(x1) = max{7, 2} and_A(x1,x2) = max{6, 2 + x1, 5} and#_A(x1,x2) = max{6, 6, 2} T_A = 1 T#_A = 3 impl_A(x1,x2) = max{4, 7 + x1, 8} impl#_A(x1,x2) = max{4, 4 + x1, 6} or_A(x1,x2) = max{8, 4 + x1, 0} or#_A(x1,x2) = max{7, 7, 7} equiv_A(x1,x2) = max{4, 4 + x1, 8} equiv#_A(x1,x2) = max{2, 2, 6} precedence: impl = or > neg = and = equiv > xor = T > F