In the mathematical discipline of set theory, forcing is a technique for proving consistency and independence results.
It was first used by Paul Cohen in 1963, to prove the independence of the axiom of choice and the continuum hypothesis from Zermelo–Fraenkel set theory.
Forcing has been considerably reworked and simplified in the following years, and has since served as a powerful technique, both in set theory and in areas of mathematical logic such as recursion theory.
Descriptive set theory uses the notions of forcing from both recursion theory and set theory.
Forcing has also been used in model theory, but it is common in model theory to define genericity directly without mention of forcing.
Intuition
Intuitively, forcing consists of expanding the set theoretical universe  V  to a larger universe  V^{*} .
In this bigger universe, for example, one might have many new subsets of  that were not there in the old universe, and thereby violate the continuum hypothesis.
While impossible when dealing with finite sets, this is just another version of Cantor's paradox about infinity.
In principle, one could consider:
V^{*} = V \times \{ 0,1 \},
identify  x \in V  with  (x,0) , and then introduce an expanded membership relation involving "new" sets of the form  (x,1) .
Forcing is a more elaborate version of this idea, reducing the expansion to the existence of one new set, and allowing for fine control over the properties of the expanded universe.
Cohen's original technique, now called ramified forcing, is slightly different from the unramified forcing expounded here.
Forcing is also equivalent to the method of Boolean-valued models, which some feel is conceptually more natural and intuitive, but usually much more difficult to apply.
Forcing posets
A forcing poset is an ordered triple,  (\mathbb{P},\leq,\mathbf{1}) , where  \leq  is a preorder on  \mathbb{P}  that is atomless, meaning that it satisfies the following condition:
For each  p \in \mathbb{P} , there are  q,r \in \mathbb{P}  such that  q,r \leq p , with no  s \in \mathbb{P}  such that  s \leq q,r .
The largest element of  \mathbb{P}  is  \mathbf{1} , that is,  p \leq \mathbf{1}  for all  p \in \mathbb{P} .
Members of  \mathbb{P}  are called forcing conditions or just conditions.
One reads  p \leq q  as " p  is stronger than  q ".
Intuitively, the "smaller" condition provides "more" information, just as the smaller interval  [3.1415926,3.1415927]  provides more information about the number  than the interval  [3.1,3.2]  does.
There are various conventions in use.
Some authors require  \leq  to also be antisymmetric, so that the relation is a partial order.
Some use the term partial order anyway, conflicting with standard terminology, while some use the term preorder.
The largest element can be dispensed with.
The reverse ordering is also used, most notably by Saharon Shelah and his co-authors.
P-names
Associated with a forcing poset  \mathbb{P}  is the class  V^{(\mathbb{P})}  of  \mathbb{P} -names.
A  \mathbb{P} -name is a set  A  of the form
A \subseteq \{ (u,p) \mid u ~ \text{is a} ~ \mathbb{P} \text{-name and} ~ p \in \mathbb{P} \}.
This is actually a definition by transfinite recursion.
With \varnothing the empty set, \alpha + 1 the successor ordinal to ordinal \alpha, \mathcal{P} the power-set operator, and \lambda a limit ordinal, define the following hierarchy:
\begin{align} \operatorname{Name}(\varnothing) & = \varnothing, \\ \operatorname{Name}(\alpha + 1)  & = \mathcal{P}(\operatorname{Name}(\alpha) \times \mathbb{P}), \\ \operatorname{Name}(\lambda)     & = \bigcup \{ \operatorname{Name}(\alpha) \mid \alpha < \lambda \}.
\end{align}
Then the class of  \mathbb{P} -names is defined as
V^{(\mathbb{P})} = \bigcup \{ \operatorname{Name}(\alpha) ~|~ \alpha ~ \text{is an ordinal} \}.
The  \mathbb{P} -names are, in fact, an expansion of the universe.
Given  x \in V , one defines  \check{x}  to be the  \mathbb{P} -name
\check{x} = \{ (\check{y},\mathbf{1}) \mid y \in x \}.
Again, this is really a definition by transfinite recursion.
Interpretation
Given any subset  G  of  \mathbb{P} , one next defines the interpretation or valuation map from  \mathbb{P} -names by
\operatorname{val}(u,G) = \{ \operatorname{val}(v,G) \mid \exists p \in G: ~ (v,p) \in u \}.
This is again a definition by transfinite recursion.
Note that if  \mathbf{1} \in G , then  \operatorname{val}(\check{x},G) = x .
One then defines
\underline{G} = \{ (\check{p},p) \mid p \in G \}
so that  \operatorname{val}(\underline{G},G) = \{\operatorname{val}(\check p, G) \mid p \in G\} = G .
Example
A good example of a forcing poset is  (\operatorname{Bor}(I),\subseteq,I) , where  I = [0,1]  and  \operatorname{Bor}(I)  is the collection of Borel subsets of  I  having non-zero Lebesgue measure.
In this case, one can talk about the conditions as being probabilities, and a  \operatorname{Bor}(I) -name assigns membership in a probabilistic sense.
Due to the ready intuition this example can provide, probabilistic language is sometimes used with other divergent forcing posets.
Countable transitive models and generic filters
The key step in forcing is, given a  \mathsf{ZFC}  universe  V , to find an appropriate object  G  not in  V .
The resulting class of all interpretations of  \mathbb{P} -names will be a model of  \mathsf{ZFC}  that properly extends the original  V  (since  G \notin V ).
Instead of working with  V , it is useful to consider a countable transitive model  M  with  (\mathbb{P},\leq,\mathbf{1}) \in M .
"Model" refers to a model of set theory, either of all of  \mathsf{ZFC} , or a model of a large but finite subset of  \mathsf{ZFC} , or some variant thereof.
"Transitivity" means that if  x \in y \in M , then  x \in M .
The Mostowski collapse lemma states that this can be assumed if the membership relation is well-founded.
The effect of transitivity is that membership and other elementary notions can be handled intuitively.
Countability of the model relies on the Löwenheim–Skolem theorem.
As  M  is a set, there are sets not in  M  – this follows from Russell's paradox.
The appropriate set  G  to pick and adjoin to  M  is a generic filter on  \mathbb{P} .
The "filter" condition means that:
G \subseteq \mathbb{P};
\mathbf{1} \in G;
if  p \geq q \in G , then  p \in G;
if  p,q \in G , then there exists an  r \in G  such that  r \leq p,q.
For  G  to be "generic" means:
If  D \in M  is a "dense" subset of  \mathbb{P}  (that is, for each  p \in \mathbb{P} , there exists a  q \in D  such that  q \leq p ), then  G \cap D \neq \varnothing .
The existence of a generic filter  G  follows from the Rasiowa–Sikorski lemma.
In fact, slightly more is true: Given a condition  p \in \mathbb{P} , one can find a generic filter  G  such that  p \in G .
Due to the splitting condition on \mathbb{P} (termed being 'atomless' above), if  G  is a filter, then  \mathbb{P} \setminus G  is dense.
If  G \in M , then  \mathbb{P} \setminus G \in M  because  M  is a model of  \mathsf{ZFC} .
For this reason, a generic filter is never in  M .
Forcing
Given a generic filter  G \subseteq \mathbb{P}, one proceeds as follows.
The subclass of  \mathbb{P} -names in  M  is denoted  M^{(\mathbb{P})} .
Let
M[G] = \left\{ \operatorname{val}(u,G) ~ \Big| ~ u \in M^{(\mathbb{P})} \right\}.
To reduce the study of the set theory of  M[G]  to that of  M , one works with the "forcing language", which is built up like ordinary first-order logic, with membership as the binary relation and all the  \mathbb{P} -names as constants.
Define  p \Vdash_{M,\mathbb{P}} \varphi(u_{1},\ldots,u_{n})  (to be read as "p forces  \varphi  in the model  M  with poset  \mathbb{P} "), where  p  is a condition,  \varphi  is a formula in the forcing language, and the  u_{i} 's are  \mathbb{P} -names, to mean that if  G  is a generic filter containing  p , then  M[G] \models \varphi(\operatorname{val}(u_{1},G),\ldots,\operatorname{val}(u_{n},G)) .
The special case  \mathbf{1} \Vdash_{M,\mathbb{P}} \varphi  is often written as " \mathbb{P} \Vdash_{M,\mathbb{P}} \varphi " or simply " \Vdash_{M,\mathbb{P}} \varphi ".
Such statements are true in  M[G] , no matter what  G  is.
What is important is that this external definition of the forcing relation  p \Vdash_{M,\mathbb{P}} \varphi  is equivalent to an internal definition within  M , defined by transfinite induction over the  \mathbb{P} -names on instances of  u \in v  and  u = v , and then by ordinary induction over the complexity of formulae.
This has the effect that all the properties of  M[G]  are really properties of  M , and the verification of  \mathsf{ZFC}  in  M[G]  becomes straightforward.
This is usually summarized as the following three key properties:
Truth:  M[G] \models \varphi(\operatorname{val}(u_{1},G),\ldots,\operatorname{val}(u_{n},G))  if and only if it is forced by  G , that is, for some condition  p \in G , we have  p \Vdash_{M,\mathbb{P}} \varphi(u_{1},\ldots,u_{n}) .
Definability: The statement " p \Vdash_{M,\mathbb{P}} \varphi(u_{1},\ldots,u_{n}) " is definable in  M .
Coherence:  p \Vdash_{M,\mathbb{P}} \varphi(u_{1},\ldots,u_{n}) \land q \leq p \implies q \Vdash_{M,\mathbb{P}} \varphi(u_{1},\ldots,u_{n}) .
We define the forcing relation  \Vdash_{M,\mathbb{P}}  in  M  by induction on the complexity of formulas, in which we first define the relation for atomic formulas by  \in -induction and then define it for arbitrary formulas by induction on their complexity.
We first define the forcing relation on atomic formulas, doing so for both types of formulas, x\in y and x=y, simultaneously.
This means that we define one relation R(p,a,b,t,\mathbb{P}) where t denotes type of formula as follows:
R(p,a,b,0,\mathbb{P}) means p\Vdash_{\mathbb{P}}a\in b.
R(p,a,b,1,\mathbb{P}) means p\Vdash_{\mathbb{P}}a=b.
R(p,a,b,2,\mathbb{P}) means p\Vdash_{\mathbb{P}}a\subseteq b.
Here p is a condition and a and b are \mathbb{P}-names.
Let R(p,a,b,t,\mathbb{P}) be a formula defined by \in-induction:
R1.
R(p,a,b,0,\mathbb{P}) if and only if (\forall q\leq p)(\exists r\leq q)(\exists(s,c)\in b)(r\leq s\,\land\,R(r,a,c,1,\mathbb{P})).
R2.
R(p,a,b,1,\mathbb{P}) if and only if R(r,a,b,2,\mathbb{P})\,\land\,R(r,b,a,2,\mathbb{P}).
R3.
R(p,a,b,2,\mathbb{P}) if and only if (\forall(s,c)\in a)(\forall q\leq p)(\exists r\leq q)(r\leq s\,\Rightarrow\,R(r,c,b,0,\mathbb{P})).
More formally, we use following binary relation \mathbb{P}-names: Let S(a,b) holds for names a and b if and only if (p,a)\in b for at least one condition p.
This relation is well-founded, which means that for any name a the class of all names b, such that S(a,b) holds, is a set and there is no function f:\omega\longrightarrow Names such that (\forall n\in\omega)S(f(n+1),f(n)).
In general a well-founded relation is not a preorder, because it might not be transitive.
But, if we consider it as an "ordering", it is a relation without infinite decreasing sequences and where for any element the class of elements below it is a set.
It is easy to close any binary relation for transitivity.
For names a and b, a<b holds if there is at least one finite sequence c_0,\dots,c_n (as a map with domain \{0,\dots,n\}) for some n>0 such that c_0=a, c_n=b and for any i<n, S(c_{i-1},c_i) holds.
Such an ordering is well-founded too.
We define the following well defined ordering on pairs of names: T((a,b),(c,d)) if one of the following holds:
\max\{a,b\}<\max\{c,d\},
\max\{a,b\}=\max\{c,d\} and \min\{a,b\}<\min\{c,d\},
\max\{a,b\}=\max\{c,d\} and \min\{a,b\}=\min\{c,d\} and a<c.
The relation R(p,a,b,t,\mathbb{P}) is defined by recursion on pairs (a,b) of names.
For any pair it is defined by the same relation on "simpler" pairs.
Actually, by the recursion theorem there is a formula R(p,a,b,t,\mathbb{P}) such that R1, R2 and R3 are theorems because its truth value at some point is defined by its truth values in "smaller" points relative to the some well-founded relation used as an "ordering".
Now, we are ready to define forcing relation:
p\Vdash_{\mathbb P}a\in b means a,b\in Name\,\land\,R(p,a,b,0,\mathbb{P}).
p\Vdash_{\mathbb P}a=b means a,b\in Name\,\land\,R(p,a,b,1,\mathbb{P}).
p\Vdash_{\mathbb P}\lnot f(a_1,\dots,a_n) means a_1,\dots,a_n\in Name\,\land\,\lnot(\exists q\leq p)q\Vdash_{\mathbb P} f(a_1,\dots,a_n).
p\Vdash_{\mathbb P}(f(a_1,\dots,a_n)\land g(a_1,\dots,a_n)) means a_1,\dots,a_n\in Name\,\land\,(p\Vdash_{\mathbb P}f(a_1,\dots,a_n))\land(p\Vdash_{\mathbb P}g(a_1,\dots,a_n)).
p\Vdash_{\mathbb{P}}(\forall x)f(a_1,\dots,a_n,x) means a_1,\dots,a_n\in Name\,\land\,a_1,\dots,a_n\in Name\,\land\,(\forall b\in Names)p\Vdash_{\mathbb{P}}f(a_1,\dots,a_n,b).
Actually, this is a transformation of an arbitrary formula f(x_1,\dots,x_n) to the formula p\Vdash_{\mathbb{P}}f(x_1,\dots,x_n) where p and \mathbb{P} are additional variables.
This is the definition of the forcing relation in the universe V of all sets regardless to any countable transitive model.
However, there is a relation between this "syntactic" formulation of forcing and the "semantic" formulation of forcing over some countable transitive model M.
For any formula f(x_1,\dots,x_n) there is a theorem T of the theory \mathsf{ZFC} (for example conjunction of finite number of axioms) such that for any countable transitive model M such that M\models T and any atomless partial order \mathbb{P}\in M and any \mathbb{P}-generic filter G over M (\forall a_1,\ldots,a_n\in M^{\mathbb{P}})(\forall p\in\mathbb{P})(p\Vdash_{M,\mathbb{P}} f(a_1,\dots,a_n) \,\Leftrightarrow \, M\models p\Vdash_{\mathbb{P}}f(a_1,\dots,a_n)).
This is called the property of definability of the forcing relation.
Consistency
The discussion above can be summarized by the fundamental consistency result that, given a forcing poset  \mathbb{P} , we may assume the existence of a generic filter  G , not belonging to the universe  V , such that  V[G]  is again a set-theoretic universe that models  \mathsf{ZFC} .
Furthermore, all truths in  V[G]  may be reduced to truths in  V  involving the forcing relation.
Both styles, adjoining  G  to either a countable transitive model  M  or the whole universe  V , are commonly used.
Less commonly seen is the approach using the "internal" definition of forcing, in which no mention of set or class models is made.
This was Cohen's original method, and in one elaboration, it becomes the method of Boolean-valued analysis.
Cohen forcing
The simplest nontrivial forcing poset is  (\operatorname{Fin}(\omega,2),\supseteq,0) , the finite partial functions from  \omega  to  2 ~ \stackrel{\text{df}}{=} ~ \{ 0,1 \}  under reverse inclusion.
That is, a condition  p  is essentially two disjoint finite subsets  {p^{-1}}[1]  and  {p^{-1}}[0]  of  \omega , to be thought of as the "yes" and "no" parts of  with no information provided on values outside the domain of  p . "
q  is stronger than  p " means that  q \supseteq p , in other words, the "yes" and "no" parts of  q  are supersets of the "yes" and "no" parts of  p , and in that sense, provide more information.
Let  G  be a generic filter for this poset.
If  p  and  q  are both in  G , then  p \cup q  is a condition because  G  is a filter.
This means that  g = \bigcup G  is a well-defined partial function from  \omega  to  2  because any two conditions in  G  agree on their common domain.
In fact,  g  is a total function.
Given  n \in \omega , let  D_{n} = \{ p \mid p(n) ~ \text{is defined} \} .
Then  D_{n}  is dense.
(Given any  p , if  n  is not in  p 's domain, adjoin a value for  n —the result is in  D_{n} .)
A condition  p \in G \cap D_{n}  has  n  in its domain, and since  p \subseteq g , we find that  g(n)  is defined.
Let  X = {g^{-1}}[1] , the set of all "yes" members of the generic conditions.
It is possible to give a name for  X  directly.
Let
\underline{X} = \left \{ \left (\check{n},p \right ) \mid p(n) = 1 \right \}.
Then \operatorname{val}(\underline{X},G) = X.
Now suppose that  A \subseteq \omega  in  V .
We claim that  X \neq A .
Let
D_{A} = \{ p \mid (\exists n)(n \in \operatorname{Dom}(p) \land (p(n) = 1 \iff n \notin A)) \}.
Then D_A is dense.
(Given any  p , find  n  that is not in its domain, and adjoin a value for  n  contrary to the status of " n \in A ".)
Then any  p \in G \cap D_A witnesses  X \neq A .
To summarize,  X  is a "new" subset of  \omega , necessarily infinite.
Replacing  \omega  with  \omega \times \omega_{2} , that is, consider instead finite partial functions whose inputs are of the form  (n,\alpha) , with  n < \omega  and  \alpha < \omega_{2} , and whose outputs are  0  or  1 , one gets  \omega_{2}  new subsets of  \omega .
They are all distinct, by a density argument: Given  \alpha < \beta < \omega_{2} , let
D_{\alpha,\beta} = \{ p \mid (\exists n)(p(n,\alpha) \neq p(n,\beta)) \},
then each  D_{\alpha,\beta}  is dense, and a generic condition in it proves that the αth new set disagrees somewhere with the  \beta th new set.
This is not yet the falsification of the continuum hypothesis.
One must prove that no new maps have been introduced which map  \omega  onto  \omega_{1} , or  \omega_{1}  onto  \omega_{2} .
For example, if one considers instead  \operatorname{Fin}(\omega,\omega_{1}) , finite partial functions from  \omega  to  \omega_{1} , the first uncountable ordinal, one gets in  V[G]  a bijection from  \omega  to  \omega_{1} .
In other words,  \omega_{1}  has collapsed, and in the forcing extension, is a countable ordinal.
The last step in showing the independence of the continuum hypothesis, then, is to show that Cohen forcing does not collapse cardinals.
For this, a sufficient combinatorial property is that all of the antichains of the forcing poset are countable.
The countable chain condition
An (strong) antichain  A  of  \mathbb{P}  is a subset such that if  p,q \in A , then  p  and  q  are incompatible (written  p \perp q ), meaning there is no  r  in  \mathbb{P}  such that  r \leq p  and  r \leq q .
In the example on Borel sets, incompatibility means that  p \cap q  has zero measure.
In the example on finite partial functions, incompatibility means that  p \cup q  is not a function, in other words,  p  and  q  assign different values to some domain input.
\mathbb{P}  satisfies the countable chain condition (c.c.c.) if and only if every antichain in  \mathbb{P}  is countable.
(The name, which is obviously inappropriate, is a holdover from older terminology.
Some mathematicians write "c.a.c." for "countable antichain condition".)
It is easy to see that  \operatorname{Bor}(I)  satisfies the c.c.c. because the measures add up to at most  1 .
Also,  \operatorname{Fin}(E,2)  satisfies the c.c.c., but the proof is more difficult.
Given an uncountable subfamily  W \subseteq \operatorname{Fin}(E,2) , shrink  W  to an uncountable subfamily  W_{0}  of sets of size  n , for some n < \omega .
If  p(e_{1}) = b_{1}  for uncountably many  p \in W_{0} , shrink this to an uncountable subfamily  W_{1}  and repeat, getting a finite set  \{ (e_{1},b_{1}),\ldots,(e_{k},b_{k}) \}  and an uncountable family  W_{k}  of incompatible conditions of size  n - k  such that every  e  is in  \operatorname{Dom}(p)  for at most countable many  p \in W_{k} .
Now, pick an arbitrary  p \in W_{k} , and pick from  W_{k}  any  q  that is not one of the countably many members that have a domain member in common with  p .
Then  p \cup \{ (e_{1},b_{1}),\ldots,(e_{k},b_{k}) \}  and q \cup \{ (e_{1},b_{1}),\ldots,(e_{k},b_{k}) \}  are compatible, so  W  is not an antichain.
In other words,  \operatorname{Fin}(E,2) -antichains are countable.
The importance of antichains in forcing is that for most purposes, dense sets and maximal antichains are equivalent.
A maximal antichain  A  is one that cannot be extended to a larger antichain.
This means that every element  p \in \mathbb{P}  is compatible with some member of  A .
The existence of a maximal antichain follows from Zorn's Lemma.
Given a maximal antichain  A , let
D = \left \{ p \in \mathbb{P} \mid (\exists q \in A)(p \leq q) \right \}.
Then  D  is dense, and  G \cap D \neq \varnothing  if and only if  G \cap A \neq \varnothing .
Conversely, given a dense set  D , Zorn's Lemma shows that there exists a maximal antichain  A \subseteq D , and then  G \cap D \neq \varnothing  if and only if  G \cap A \neq \varnothing .
Assume that  \mathbb{P}  satisfies the c.c.c. Given  x,y \in V , with  f: x \to y  a function in  V[G] , one can approximate  f  inside  V  as follows.
Let  u  be a name for  f  (by the definition of  V[G] ) and let  p  be a condition that forces  u  to be a function from  x  to  y .
Define a function  F , whose domain is  x , by
F(a) \stackrel{\text{df}}{=} \left \{ b \left | (\exists q \in \mathbb{P}) \left [(q \leq p) \land \left (q \Vdash ~ u \left (\check{a} \right ) = \check{b} \right ) \right ] \right \}.
\right.
By the definability of forcing, this definition makes sense within  V .
By the coherence of forcing, a different  b  come from an incompatible  p .
By c.c.c.,  F(a)  is countable.
In summary,  f  is unknown in  V  as it depends on  G , but it is not wildly unknown for a c.c.c.-forcing.
One can identify a countable set of guesses for what the value of  f  is at any input, independent of  G .
This has the following very important consequence.
If in  V[G] ,  f: \alpha \to \beta  is a surjection from one infinite ordinal onto another, then there is a surjection  g: \omega \times \alpha \to \beta  in  V , and consequently, a surjection  h: \alpha \to \beta  in  V .
In particular, cardinals cannot collapse.
The conclusion is that 2^{\aleph_{0}} \geq \aleph_{2}  in  V[G] .
Easton forcing
The exact value of the continuum in the above Cohen model, and variants like  \operatorname{Fin}(\omega \times \kappa,2)  for cardinals  \kappa  in general, was worked out by Robert M. Solovay, who also worked out how to violate  \mathsf{GCH}  (the generalized continuum hypothesis), for regular cardinals only, a finite number of times.
For example, in the above Cohen model, if  \mathsf{CH}  holds in  V , then  2^{\aleph_{0}} = \aleph_{2}  holds in  V[G] .
William B. Easton worked out the proper class version of violating the  \mathsf{GCH}  for regular cardinals, basically showing that the known restrictions, (monotonicity, Cantor's Theorem and König's Theorem), were the only  \mathsf{ZFC} -provable restrictions (see Easton's Theorem).
Easton's work was notable in that it involved forcing with a proper class of conditions.
In general, the method of forcing with a proper class of conditions fails to give a model of  \mathsf{ZFC} .
For example, forcing with  \operatorname{Fin}(\omega \times \mathbf{On},2) , where  \mathbf{On}  is the proper class of all ordinals, makes the continuum a proper class.
On the other hand, forcing with  \operatorname{Fin}(\omega,\mathbf{On})  introduces a countable enumeration of the ordinals.
In both cases, the resulting  V[G]  is visibly not a model of  \mathsf{ZFC} .
At one time, it was thought that more sophisticated forcing would also allow an arbitrary variation in the powers of singular cardinals.
However, this has turned out to be a difficult, subtle and even surprising problem, with several more restrictions provable in  \mathsf{ZFC}  and with the forcing models depending on the consistency of various large-cardinal properties.
Many open problems remain.
Random reals
Random forcing can be defined as forcing over the set P of all compact subsets of [0,1] of positive measure ordered by relation \subseteq (smaller set in context of inclusion is smaller set in ordering and represents condition with more information).
There are two types of important dense sets:
For any positive integer n the set D_n= \left \{p\in P : \operatorname{diam}(p)<\frac 1n \right \} is dense, where \operatorname{diam}(p) is diameter of the set p.
For any Borel subset B \subseteq [0,1] of measure 1, the set D_B=\{p\in P : p\subseteq B\} is dense.
For any filter G and for any finitely many elements p_1,\ldots,p_n\in G there is q\in G such that holds q\leq p_1,\ldots,p_n.
In case of this ordering, this means that any filter is set of compact sets with finite intersection property.
For this reason, intersection of all elements of any filter is nonempty.
If G is a filter intersecting the dense set D_n for any positive integer n, then the filter G contains conditions of arbitrarily small positive diameter.
Therefore, the intersection of all conditions from G has diameter 0.
But the only nonempty sets of diameter 0 are singletons.
So there is exactly one real number r_G such that r_G\in\bigcap G.
Let B\subseteq[0,1] be any Borel set of measure 1.
If G intersects D_B, then r_G\in B.
However, a generic filter over a countable transitive model V is not in V.
The real r_G defined by G is provably not an element of V. The problem is that if p\in P, then V\models "p is compact", but from the viewpoint of some larger universe U\supset V, p can be non-compact and the intersection of all conditions from the generic filter G is actually empty.
For this reason, we consider the set C=\{\bar p : p\in G\} of topological closures of conditions from G.
Because of \bar p\supseteq p and the finite intersection property of G, the set C also has the finite intersection property.
Elements of the set C are bounded closed sets as closures of bounded sets.
Therefore, C is a set of compact sets with the finite intersection property and thus has nonempty intersection.
Since \operatorname{diam}(\bar p) = \operatorname{diam}(p) and the ground model V inherits a metric from the universe U, the set C has elements of arbitrarily small diameter.
Finally, there is exactly one real that belongs to all members of the set C.
The generic filter G can be reconstructed from r_G as G=\{p\in P : r_G\in\bar p\}.
If a is name of r_G, and for B\in V holds V\models"B is Borel set of measure 1", then holds
V[G]\models \left (p\Vdash_{\mathbb{P}}a\in\check{B} \right )
for some p\in G.
There is name a such that for any generic filter G holds
\operatorname{val}(a,G)\in\bigcup_{p\in G}\bar p.
Then
V[G]\models \left (p\Vdash_{\mathbb{P}}a\in\check{B} \right )
holds for any condition p.
Every Borel set can, non-uniquely, be built up, starting from intervals with rational endpoints and applying the operations of complement and countable unions, a countable number of times.
The record of such a construction is called a Borel code.
Given a Borel set B in V, one recovers a Borel code, and then applies the same construction sequence in V[G], getting a Borel set B^*.
It can be proven that one gets the same set independent of the construction of B , and that basic properties are preserved.
For example, if B \subseteq C, then B^* \subseteq C^*.
If B has measure zero, then B^* has measure zero.
This mapping B\mapsto B^* is injective.
For any set B\subseteq[0,1] such that B\in V and V\models"B is a Borel set of measure 1" holds r\in B^*.
This means that r is "infinite random sequence of 0s and 1s" from the viewpoint of V, which means that it satisfies all statistical tests from the ground model V.
So given r, a random real, one can show that
G = \left \{ B ~ (\text{in } V) \mid r \in B^* ~ (\text{in } V[G]) \right \}.
Because of the mutual inter-definability between r and  G , one generally writes V[r] for V[G].
A different interpretation of reals in V[G] was provided by Dana Scott.
Rational numbers in  V[G]  have names that correspond to countably-many distinct rational values assigned to a maximal antichain of Borel sets – in other words, a certain rational-valued function on I = [0,1] .
Real numbers in V[G] then correspond to Dedekind cuts of such functions, that is, measurable functions.
Boolean-valued models
Perhaps more clearly, the method can be explained in terms of Boolean-valued models.
In these, any statement is assigned a truth value from some complete atomless Boolean algebra, rather than just a true/false value.
Then an ultrafilter is picked in this Boolean algebra, which assigns values true/false to statements of our theory.
The point is that the resulting theory has a model which contains this ultrafilter, which can be understood as a new model obtained by extending the old one with this ultrafilter.
By picking a Boolean-valued model in an appropriate way, we can get a model that has the desired property.
In it, only statements which must be true (are "forced" to be true) will be true, in a sense (since it has this extension/minimality property).
Meta-mathematical explanation
In forcing, we usually seek to show that some sentence is consistent with  \mathsf{ZFC}  (or optionally some extension of  \mathsf{ZFC} ).
One way to interpret the argument is to assume that  \mathsf{ZFC}  is consistent and then prove that  \mathsf{ZFC}  combined with the new sentence is also consistent.
Each "condition" is a finite piece of information – the idea is that only finite pieces are relevant for consistency, since, by the compactness theorem, a theory is satisfiable if and only if every finite subset of its axioms is satisfiable.
Then we can pick an infinite set of consistent conditions to extend our model.
Therefore, assuming the consistency of  \mathsf{ZFC} , we prove the consistency of  \mathsf{ZFC}  extended by this infinite set.
Logical explanation
By Gödel's second incompleteness theorem, one cannot prove the consistency of any sufficiently strong formal theory, such as  \mathsf{ZFC} , using only the axioms of the theory itself, unless the theory is inconsistent.
Consequently, mathematicians do not attempt to prove the consistency of  \mathsf{ZFC}  using only the axioms of  \mathsf{ZFC} , or to prove that  \mathsf{ZFC} + H  is consistent for any hypothesis  H  using only  \mathsf{ZFC} + H .
For this reason, the aim of a consistency proof is to prove the consistency of  \mathsf{ZFC} + H  relative to the consistency of  \mathsf{ZFC} .
Such problems are known as problems of relative consistency, one of which proves
The general schema of relative consistency proofs follows.
As any proof is finite, it uses only a finite number of axioms:
\mathsf{ZFC} + \lnot \operatorname{Con}(\mathsf{ZFC} + H) \vdash (\exists T)(\operatorname{Fin}(T) \land T \subseteq \mathsf{ZFC} \land (T \vdash \lnot H)).
For any given proof,  \mathsf{ZFC}  can verify the validity of this proof.
This is provable by induction on the length of the proof.
\mathsf{ZFC} \vdash (\forall T)((T \vdash \lnot H) \rightarrow (\mathsf{ZFC} \vdash (T \vdash \lnot H))).
Then resolve
\mathsf{ZFC} + \lnot \operatorname{Con}(\mathsf{ZFC} + H) \vdash (\exists T)(\operatorname{Fin}(T) \land T \subseteq \mathsf{ZFC} \land (\mathsf{ZFC} \vdash (T \vdash \lnot H))).
By proving the following
it can be concluded that
\mathsf{ZFC} + \lnot \operatorname{Con}(\mathsf{ZFC} + H) \vdash (\exists T)(\operatorname{Fin}(T) \land T \subseteq \mathsf{ZFC} \land (\mathsf{ZFC} \vdash (T \vdash \lnot H)) \land (\mathsf{ZFC} \vdash \operatorname{Con}(T + H))),
which is equivalent to
\mathsf{ZFC} + \lnot \operatorname{Con}(\mathsf{ZFC} + H) \vdash \lnot \operatorname{Con}(\mathsf{ZFC}),
which gives (*).
The core of the relative consistency proof is proving (**).
A  \mathsf{ZFC}  proof of  \operatorname{Con}(T + H)  can be constructed for any given finite subset  T  of the  \mathsf{ZFC}  axioms (by  \mathsf{ZFC}  instruments of course).
(No universal proof of  \operatorname{Con}(T + H)  of course.)
In  \mathsf{ZFC} , it is provable that for any condition  p , the set of formulas (evaluated by names) forced by  p  is deductively closed.
Furthermore, for any  \mathsf{ZFC}  axiom,  \mathsf{ZFC}  proves that this axiom is forced by  \mathbf{1} .
Then it suffices to prove that there is at least one condition that forces  H .
In the case of Boolean-valued forcing, the procedure is similar: proving that the Boolean value of  H  is not  \mathbf{0} .
Another approach uses the Reflection Theorem.
For any given finite set of  \mathsf{ZFC}  axioms, there is a  \mathsf{ZFC}  proof that this set of axioms has a countable transitive model.
For any given finite set  T  of  \mathsf{ZFC}  axioms, there is a finite set  T'  of  \mathsf{ZFC}  axioms such that  \mathsf{ZFC}  proves that if a countable transitive model  M  satisfies  T' , then  M[G]  satisfies  T .
By proving that there is finite set  T  of  \mathsf{ZFC}  axioms such that if a countable transitive model  M  satisfies  T , then  M[G]  satisfies the hypothesis  H .
Then, for any given finite set  T  of  \mathsf{ZFC}  axioms,  \mathsf{ZFC}  proves  \operatorname{Con}(T + H) .
Sometimes in (**), a stronger theory  S  than  \mathsf{ZFC}  is used for proving  \operatorname{Con}(T + H) .
Then we have proof of the consistency of  \mathsf{ZFC} + H  relative to the consistency of  S .
Note that  \mathsf{ZFC} \vdash \operatorname{Con}(\mathsf{ZFC}) \leftrightarrow \operatorname{Con}(\mathsf{ZFL}) , where  \mathsf{ZFL}  is  \mathsf{ZF} + V = L  (the axiom of constructibility).
See also
List of forcing notions
Nice name
References
Bell, J. L. (1985).
Boolean-Valued Models and Independence Proofs in Set Theory, Oxford.
External links
Gunther, E.; Pagano, M.; Sánchez Terraf, P. Formalization of Forcing in Isabelle/ZF (Formal Proof Development, Archive of Formal Proofs)
Nik Weaver's book Forcing for Mathematicians was written for mathematicians who want to learn the basic machinery of forcing.
No background in logic is assumed, beyond the facility with formal syntax which should be second nature to any well-trained mathematician.
Timothy Chow's article A Beginner's Guide to Forcing is a good introduction to the concepts of forcing that avoids a lot of technical detail.
This paper grew out of Chow's newsgroup article Forcing for dummies.
In addition to improved exposition, the Beginner's Guide includes a section on Boolean-valued models.
See also Kenny Easwaran's article A Cheerful Introduction to Forcing and the Continuum Hypothesis, which is also aimed at the beginner but includes more technical details than Chow's article.
Cohen, P. J. The Independence of the Continuum Hypothesis, Proceedings of the National Academy of Sciences of the United States of America, Vol. 50, No.
6. (Dec. 15, 1963), pp.
1143–1148.
Cohen, P. J. The Independence of the Continuum Hypothesis, II, Proceedings of the National Academy of Sciences of the United States of America, Vol. 51, No.
1. (Jan. 15, 1964), pp.
105–110.
Paul Cohen gave a historical lecture The Discovery of Forcing (Rocky Mountain J. Math.
Volume 32, Number 4 (2002), 1071–1100) about how he developed his independence proof.
The linked page has a download link for an open access PDF but your browser must send a referer header from the linked page to retrieve it.
Akihiro Kanamori: Set theory from Cantor to Cohen
