Big-O and little-o notation I think I have a passable understanding of what Big-O and little-o mean. I'm just wondering whether it makes sense notation-wise to state something like the following:

$$O(n^c) = o(n^k) \text{ for } k &gt; c$$

For example, $O(n^2) = o(n^3)$ since $3 &gt; 2$. Basically, any constant times $n^2$ will still grow more slowly than any constant times $n^3$ for large enough $n$.

Does it make sense to have both sides of an equation consist of big-O and/or little-o notations like this, or does one side of the equation have to consist of a bare function only? Thanks.
Many people cringe at the notation $n^2=O(n^3)$, since, strictly speaking, $O(n^3)$ is a set of functions, defined by
$$
O(n^3)=\{f\mid \exists k&gt;0, N\ge 0\, [f(n)\le kn^3\text{ for all }n\ge N\}
$$
In other words,
$$
O(n^3)=\{1, n, n^2, n^2\log n, n^3, 3n^3+15n^2,\dotsc\}
$$
which is to say $O(n^3)$ consists of all functions $f(n)$ that are eventually less than a constant multiple of $n^3$.

With this understanding, to be precise we should write $n^2\in O(n^3)$, rather than the sloppier $n^2=O(n^3)$. This means that it is indeed notationally correct to ask whether $O(n^2)=o(n^3)$, since they are both sets of functions. 

[Note, by the way, I'm not asserting that $O(n^2)=o(n^3)$. I'll leave that to you to prove or disprove.]