Are there many definitions of sets and classes in mathematics, as given in Formal definion of the notations used in measuring time complexity? And in particular, why the notation given in Fedja's comment gives a class rather than a set?
Fedja's comment:
I have a colleague (a very fine mathematician, by the way), who insists that the way the $ o()$ and $ O()$ notation is currently used is nothing but an abuse of mathematical language. His argument is that $ =$ should always be an equivalence relation and $ \sin x = O(1)$ and $ 1 = O(1)$ imply neither $ O(1) = \sin x$, nor $ \sin x = 1$. Besides, the same symbol $ O(x)$ means a lot of different things. The formally correct approach to the big and little O notation, in his opinion, should be the following. Given a positive $ g$ defined in a punctured neighborhood of $ x_0$, denote by $ O_{x_0}(g)$ the class of all functions $ f$ such that the ratio $ f/g$ is bounded in some punctured neighbourhood of $ x_0$. This is a perfectly meaningful mathematical object with unique meaning. Now, instead of writing $ f(x) = O(g(x))$ as $ x\to x_0$, write $ f\in O_{x_0}(g)$. If you understand the arithmetic operations over classes of functions in the sense of Minkowski, i.e., $ A*B = \{f*g: f\in A,g\in B\}$ where $ *$ is any of the four arithmetic operations, then you can elaborate upon this idea and instead of writing $ 1 + \sin x = 1 + O(|x|) = 1 + o(1)$ as $ x\to 0$, write the formally correct $ 1 + \sin x\in 1 + O_0(|x|)\subset 1 + o_0(1)$. And so on, and so forth. I find his logic irrefutable but I do not think he has a big chance to win his crusade :)
There is no difference in meaning between "class" and "set" in this particular usage.
He is correct on the right way to formalize these notations, but the shorthand is so much easier to read, and, as long as everybody knows what you mean, it is acceptable.