YES TRS: not(x) -> xor(x,true()) or(x,y) -> xor(and(x,y),xor(x,y)) implies(x,y) -> xor(and(x,y),xor(x,true())) and(x,true()) -> x and(x,false()) -> false() and(x,x) -> x xor(x,false()) -> x xor(x,x) -> false() and(xor(x,y),z) -> xor(and(x,z),and(y,z)) max/plus interpretations on N: not_A(x1) = max{0, x1} not#_A(x1) = max{0, x1} xor_A(x1,x2) = max{0, x1, x2} xor#_A(x1,x2) = max{0, x1, x2} true_A = 0 true#_A = 0 or_A(x1,x2) = max{0, x1, x2} or#_A(x1,x2) = max{0, x1, x2} and_A(x1,x2) = max{0, x1, x2} and#_A(x1,x2) = max{0, x1, x2} implies_A(x1,x2) = max{0, x1, x2} implies#_A(x1,x2) = max{0, x1, x2} false_A = 0 false#_A = 0 precedence: or = implies > not = and > xor = true > false