Oooh, ooh, can I explain this one? Though I’m afraid another thing that makes me realize I’m not as smart as I thought I was is my occasional difficulty in usefully explaining things to people who don’t already basically know them. Still, I’ll give it a shot:
Here’s one particular view of the ultrafilter concept which, if not necessarily the usual view, might at least be easy to wrap your head around: Take your basic Boolean operations “AND”, “OR”, and “NOT”. Let’s say that a set of variable names is called a “language”. A Boolean algebra is, in some sense, a language along with a bunch of equality statements between terms built up from the variables in the language using Boolean operations. For example, one Boolean algebra would be the one whose language had three variables named x, y, and z, and which came with two equalities: x OR y = x AND z, as well as NOT (x OR z) = z AND (NOT x). Of note, the language can be infinite, and there are also allowed to be infinitely many equality statements.
Now, an ultrafilter on a Boolean algebra is basically just a way of setting each variable in its language to either TRUE or FALSE in such a way that all the equality statements are satisfied. For example, on the Boolean algebra above, one ultrafilter would be the assignment where x is TRUE, y is TRUE, and z is TRUE. Another would be the assignment where x is TRUE, y is FALSE, and z is TRUE. However, the assignment where all three are FALSE, say, would fail to be an ultrafilter, since it wouldn’t satisfy the second equality statement.
Sometimes, instead of speaking of the whole assignment directly, we just talk about the set of things which get assigned to TRUE. When talking this way, the first ultrafilter above would be {x, y, z} and the second ultrafilter above would be {x, z}. But there’s no great need to talk this way if you don’t want to.
So far so good? Now, the notion of an ultrafilter can be generalized beyond that, but this is definitely the most common level at which it’s used; if you understand this, you understand the essence of ultrafilters. However, there’s also a slight specialization of this which is very common.
Specifically, one easy way to get a Boolean algebra is to start with some set X, make a language with one variable name for each subset of X, and then add equality statements as follows:
A) Add the equality “Y1 AND Y2 = Z” whenever Z is the intersection of Y1 and Y2
B) Add the equality “Y1 OR Y2 = Z” whenever Z is the union of Y1 and Y2
C) Add the equality “NOT Y = Z” whenever Z is X - Y (i.e., everything in X is in either Y or Z but not both).
We sometimes speak of an ultrafilter on a set X to mean an ultrafilter on the Boolean algebra you get in the above way. That is, an ultrafilter on X is an assignment of TRUE or FALSE to every subset of X in such a way as that intersection acts like AND, union acts like OR, and complement acts like NOT.
So, there you have it. You now (if I’ve done my job) know what an ultrafilter is (though, unfortunately, I’ve given only one toy example, little reason for why you should care about the concept, and absolutely no indication of the non-obvious properties and important questions relating to it. Well, it’s a start.)