How generic ultrafilter is used in forcing So I just learned what ultrafilter is and generic filter is. As all maths are for beginners, it just looks like pure concepts, and I don't see how they are going to be applied in forcing. I am looking at my book about forcing, and by its scale, I am getting lost. Can anyone explain somehow intuitively, without losing much technical stuffs, how they are used in forcing? Of course there are many types of forcing, so I may be asking a too general question. But simple cases would be fine.
 A: Given a model $M$ of (enough of) $\mathsf{ZFC}$, the basic idea is to find a way to take a set $G$ which does not belong to $M$, and construct the smallest model of (a fragment of) $\mathsf{ZFC}$ which includes $M \cup \{ G \}$ (as a subset); we'll denote this by $M[G]$.
In it's current form, this is achieved as follows:


*

*Start with a (countable) transitive model $M$ of (a large enough fragment of) $\mathsf{ZFC}$, and fix a partial order $\mathbb{P} \in M$.

*Take a filter $G$ in $M$ which is generic over $M$.  This means that $G \cap D \neq \varnothing$ for every $D \in M$ which is a dense subset of $\mathbb{P}$.

*We then essentially define $M[G]$ to be the closure of $M \cup \{ G \}$ under the usual set-theoretic operations


*

*But there is actually a second (much better) characterisation. By $\in$-recursion we define a set $\tau$ to be an $\mathbb{P}$-name if it is a relation (a set of ordered pairs), each element of which is of the form $\langle \sigma , p \rangle$ where $p \in \mathbb{P}$, and $\sigma$ is a $\mathbb{P}$-name.
For each $\mathbb{P}$-name $\tau \in M$ and each subset $G$ of $\mathbb{P}$ (not necessarily in $M$) we define the interpretation of $\tau$ according to $G$ again by $\in$-recursion as $$\tau [ G ] = \{ \sigma [ G ] : ( \exists p \in G ) ( \langle \sigma , p \rangle  \in \tau ) \}.$$
Then (in the case wherre $G$ is a generic filer over $M$) $$M[G] = \{ \tau[G] : \tau \in M \text{ is a }\mathbb{P}\text{-name} \}.$$


*From this second characterization, the important point is that every element of $M[G]$ has a name which is an element of $M$.  Given a formula $\varphi ( x_1 , \ldots , x_n )$ and $\mathbb{P}$-names $\tau_1 , \ldots , \tau_n$, we can then ask ourselves to what extent can $M$ decide whether $M[G] \models \varphi ( \tau_1[G] , \ldots , \tau_n[G] )$.
Actually, more than one would expect.
To set up this fact, given a formula $\varphi ( x_1 , \ldots , x_n )$ of set theory, $\mathbb{P}$-names $\tau_1 , \ldots , \tau_n$ in $M$, and some $p \in \mathbb{P}$ we will write $$p \Vdash_{\mathbb{P}} \varphi ( \tau_1 , \ldots , \tau_n )$$ if $M[G] \models \varphi ( \tau_1[G] , \ldots , \tau_n[G] )$ for every generic filter $G$ in $\mathbb{P}$ over $M$.  (In this case we say that $p$ forces $\varphi ( \tau_1 , \ldots , \tau_n )$.)
Forcing Theorem. Let $\varphi ( x_1 , \ldots , x_n )$ be a formula of set theory, and let $\tau_1 , \ldots , \tau_n \in M$ be $\mathbb{P}$-names. Then $M[G] \models \varphi ( \tau_1[G] , \ldots , \tau_n[G] )$ iff there is a $p \in G$ such that $p \Vdash_{\mathbb{P}} \varphi ( \tau_1 , \ldots , \tau_n )$.
Furthermore, given any formula $\varphi ( x_1 , \ldots , x_n )$ there is a formula $\psi ( x_1 , \ldots , x_n , y , z )$ such that given $\mathbb{P}$-names $\mathbb{P}$-names $\tau_1 , \ldots , \tau_n \in M$, and $p \in \mathbb{P}$ we have that $$p \Vdash_{\mathbb{P}} \varphi ( \tau_1 , \ldots , \tau_n ) \quad \Leftrightarrow \quad M \models \psi ( \tau_1 , \ldots , \tau_n , \mathbb{P} , p ).$$
These two facts then say that if something in true in a generic extension, there is a "witness" to this fact in $M$, and moreover $M$ can actually distinguish witnesses from non-witnesses.

The broad schema of applications are as follows.  First we define a partial order $\mathbb{P}$ that should force what we want it to. In part because of the Forcing Theorem (and definability of the forcing relation), combinatorial properties of $\mathbb{P}$ can sometimes be translated into true statements in the generic extension.  One very common translation is the following:


*

*If $\mathbb{P} \in M$ is c.c.c. (meaning $M \models \mathbb{P} \text{ is c.c.c.}$), then for each $\kappa \in M$ such that $M \models \kappa\text{ is a cardinal}$, we have that $M[G] \models \kappa\text{ is a cardinal}$. (In the vernacular, cardinals are not collapsed.)


So not only do we want our chosen partial orders to do what we want them to, but often we also want to control their combinatorics so they don't do unexpected things.
A: Generic filters, or ultrafilters in the case of Boolean-valued models, are used to construct the new universe from the class of names.
That is, we define in the ground model a class of $P$-names, where $P$ is our forcing. The generic filter is used for interpreting those names into objects. If you think about the term "the language of forcing", the generic filter is used for "the semantics of forcing".
More accurately, we define by recursion the interpretation of the name $\dot a$ by the filter $G$:
$$\dot a^G=\{\dot b^G\mid(\exists p\in G)(p\Vdash\dot b\in\dot a)\}$$
Recall that we have the canonical names for the ground model, denoted by $\check x$, and it is not hard to show that $\check x^G=x$ for every such canonical name of ground model set. So the interpretation of the names contains all the objects from the ground model.
We also use generic filters to define the truth values of statements, and in fact the forcing relation as well:
$$V[G]\models\varphi(x_1,\ldots,x_k)\iff\exists\dot x_1,\ldots,\dot x_k\left(\bigwedge x_i=\dot x_i^G\land(\exists p\in G)(p\Vdash\varphi(\dot x_1,\ldots,\dot x_k))\right)$$
Recall that the definition of $p\Vdash\varphi$ (I'm omitting the parameters here) has two definitions.

*

*For every generic filter $G$ such that $p\in G$, $V[G]\models\varphi$.


*We define by recursion on the complexity of $\varphi$ an internal definition which states that every extension of $p$ has a compatible condition which "assures" $\varphi$ happens. Where for atomic formulas "assuring" is rather simple, the Boolean connectives are parsed as expected, and finally existential quantifier is also parsed as it should be.
(I don't want to get into the whole definition, as it takes a lot of time and space, and it appears in every treatment of forcing since 1972.)

To summarize, the generic filter defines the "semantics" of forcing, so to speak. It is the tool for us to interpret the names, and decide the truth values of statements.
In a concrete example, consider $P$ to be the partial order whose elements are finite functions from domain (partial to) $\omega_2\times\omega$ into $2$. And assume that $V\models\sf CH$.
Then we can define the names, $\dot x_\alpha=\{\langle p,\check n\rangle\mid p(\alpha,n)=1\}$ for $\alpha<\omega_2$. We can then show that every generic filter $G$ must interpret the following statements truthfully:

*

*For every $\alpha\neq\beta$, $\dot x_\alpha^G\neq\dot x_\beta^G$. This is done by using the fact that on a dense set of conditions $p(\alpha,n)\neq p(\beta,n)$.


*For every $f\colon\omega\to2$ in the ground model $V$, and every $\alpha<\omega_2$, $\dot x_\alpha^G\neq \check f^G(=f)$.


*And finally, if $\kappa$ is a cardinal in $V$ (that is, an ordinal which doesn't have a bijection between any smaller ordinal), then $\kappa$ is a cardinal in $V[G]$.
The conjunction of these three shows us that there is an injection from $\omega_2$ into $\mathcal P(\omega)$ in $V[G]$. Therefore $\sf CH$ is false in that model.
