Number of Ultrafilters on Boolean Algebra of Definable Sets (of a countable structure in a countable language) Suppose M is a countable structure in a countable language. Let $\mathbb{U}$ denote the collection of ultrafilters on the boolean algebra $BA^1(M)$. Recall $BA^1(M)$ is the boolean algebra of definable sets on $M$ by formulas in one variable. (I guess technically $BA^1(M) = \{[\phi]:\phi$ is a formula in one variable}, with $\phi \sim \varphi$ iff $\phi(M) = \varphi(M) $)
The question:If $|\mathbb{U}|>\aleph_0$, then $|\mathbb{U}| = 2^{\aleph_0}$.
I'm kind of stuck with this. I know the Stone space of complete 1-types is exactly the collection of ultrafilters on the boolean algebra (the so called Stone duality). I also know that ultrafilters on a boolean algebra are prime. I know that $\mathbb{U}$ is equipotent with the number of homomorphisms from $BA^1(M)$ to the boolean algebra $\{T, F\}$. I think the last is the most promising approach but I can't think of a way to show that there must be continuum many homomorphisms.
I know a bunch of disparate facts, but can't piece them together. Help appreciated!
 A: Here's a purely topological approach; I'm not sure if it suits your background, but I hope it helps.
By Stone duality, $\mathbb{U}$ is a compact Hausdorff space.  You can check directly that because you're working over a countable structure and in a countable language, $\mathbb{U}$ has a countable base.  Thus $\mathbb{U}$ is a compact metrizable space, so is in particular Polish.  It's a well-known theorem of topology, proved using the Cantor-Bendixson derivative, that any uncountable Polish space has cardinality $2^{\aleph_0}$.
A: Here's the standard kind of argument that you might find in a model theory textbook. It can also be cleanly rephrased as a topological argument on the Stone space, of course.
I'll think of the elements of $BA^1(M)$ as definable sets and write them using capital letters like $X$. Of course, you're welcome to think of them as equivalence classes of formulas with parameters from $M$.
Let's say a definable set $X$ is big if $\{p\in \mathbb{U}\mid X\in p\}$ is uncountable (otherwise $X$ is small), and let's say an ultrafilter $p\in \mathbb{U}$ is generic if every definable set in $p$ is big. Now there are only countably many definable sets, so in particular there are only countably many small definable sets, and each small definable set contains only countably many ultrafilters. So in total there are only countably many ultrafilters which are not generic. Thus, every big definable set is contained not just in uncountably many ultrafilters, but in fact uncountably many generic ultrafilters. Actually, we will only need to use the fact that every big definable set is contained in at least two generic ultrafilters!
Now let's assume $\mathbb{U}$ is uncountable (note that if $\mathbb{U}$ is countable, the above discussion trivializes). Then the definable set $M$ (which is defined by $x = x$ and is contained in every ultrafilter) is big. So we can pick two distinct generic ultrafilters $p$ and $q$ which contain $M$. Since $p\neq q$, there are disjoint definable sets $X_0$ and $X_1$ (we can take $X_1 = M\setminus X_0$) such that $p\in X_0$ and $q\in X_1$. Since $p$ and $q$ are generic, $X_0$ and $X_1$ are big.
To get continuum-many ultrafilters, we repeat the argument in the last paragraph to build a binary tree. For example, $X_0$ is big, so we can pick two distinct generic ultrafilters containing it and use them to split $X_0$ into two disjoint big pieces $X_{00}$ and $X_{01}$. Similarly, we split $X_1$ into two disjoint big pieces $X_{10}$ and $X_{11}$.
Once we've built a complete binary tree, we note that any of the continuum-many paths through the tree has the finite intersection property, so it can be extended to an ultrafilter. These ultrafilters are all distinct, since any two differ at some level of the tree.
