YES TRS: or(true(),y) -> true() or(x,true()) -> true() or(false(),false()) -> false() mem(x,nil()) -> false() mem(x,set(y)) -> =(x,y) mem(x,union(y,z)) -> or(mem(x,y),mem(x,z)) linear polynomial interpretations on N: or_A(x1,x2) = 1 or#_A(x1,x2) = 1 true_A = 1 true#_A = 2 false_A = 1 false#_A = 0 mem_A(x1,x2) = x1 + x2 + 1 mem#_A(x1,x2) = x1 + x2 + 1 nil_A = 1 nil#_A = 1 set_A(x1) = x1 + 1 set#_A(x1) = 0 =_A(x1,x2) = x1 + x2 =#_A(x1,x2) = 0 union_A(x1,x2) = x1 + x2 + 1 union#_A(x1,x2) = 0 precedence: true = mem > or = nil = set = = = union > false