Really liked Terry’s post on cheap nonstandard analysis. I’ll add one linguistic comment. As Terry points out, you lose the law of the excluded middle in this context, and that means you have to be very careful about logical connectives:
Because of the lack of the law of excluded middle, though, sometimes one has to take some care in phrasing statements properly before they will transfer. For instance, the statement “If , then either or ” is of course true for standard reals, but not for nonstandard reals; a counterexample can be given for instance by and . However, the rephrasing “If and , then ” is true for nonstandard reals (why?). As a rough rule of thumb, as long as the logical connectives “or” and “not” are avoided, one can transfer standard statements to cheap nonstandard ones, but otherwise one may need to reformulate the statement first before transfer becomes possible.
I like to keep stuff like this straight by thinking of the cheap-nonstandard statement “x=0” as “I am certain that x=0.” Then it’s plainly wrong to say “If I’m certain that xy=0, then either I’m certain that x=0 or I’m certain that y=0.” On the other hand, “If I’m certain that x is nonzero and I’m certain that y is nonzero, I’m certain that xy is nonzero” is legit. This is of course in keeping with Terry’s analogy between nonstandard reals and random variables, which are also in some sense “those things which are like real numbers yet are not exactly real numbers, and about whose values we might want to express certainty or uncertainty.”
Update: I meant to add: an ultrafilter represents an agent who is certain about everything!