In this blog post about ultrafilters and nonstandard analysis, it is stated that "if we attempt to formalise this by trying to create the set $A := \{ x \in {\Bbb R}: x = O(1) \}$ of all bounded numbers, and asserting that this set is then closed under addition and multiplication, we are speaking nonsense; the O() notation cannot be used within the axiom schema of specification, and so the above definition of A is meaningless."
Why is this true? I thought that the defintion of $O(g(x))$ was $O(g(x)) := \{ f(x) \in {\Bbb R^{\Bbb R}}: \limsup\limits_{x\rightarrow \infty} |\frac{f(x)}{g(x)}| <∞\} $, which requires the axiom schema of specification.
The hypothetical notation $\{x\in\mathbb R : x=O(1)\}$ seems to be used in the context of a model created as an ultraproduct. It tries to distinguish $x$ within the non-standard model by referring to the growth rate of the function at the metalevel that represents $x$.
However, the comprehension axiom demands that the property you select a subset by is definable speaking only about concepts within the non-standard model. The language this property must be phrased in does not know that the "reals" of the model are really functions at the metalevel, so it makes no sense to apply big-O notation to them.
Looking in from the metalevel, we can of course form the collection of "reals-in-the-model" that are represented by bounded functions. (Or can we? There's a quotienting step happening on the way to the ultraproduct model, so some numbers will be represented both by some function that are $O(1)$ and some functions that aren't. But we could form a collection of reals-in-the-model that have at least one bounded representative). But this collection does not correspond to something the non-standard model considers a "set".