I have decided to learn iterations at long last, and I am reading through Jech's *Set Theory* for now. The standard example after explaining what is an iteration with finite support is the following theorem (quoted from Jech, Theorem 16.13):



> 
> **Theorem (Solovay-Tennenbaum).** Assume GCH and let $\kappa$ be a regular cardinal greater than $\aleph\_1$. There is a c.c.c. notion of forcing $P$ such that the generic extension $V[G]$ by $P$ satisfies Martin's Axiom and $2^{\aleph\_0}=\kappa$.
> 
> 
> 


I believe that I understood the proof mechanically, but even though I feel that I understand it in a more profound way - I have this feeling that I really didn't get the point. It feels like magic. 


What I managed to understand is that we have enumerations of all isomorphism classes of small posets in each stage, and generically we reach them all. Alas, like any new forcing argument, this too feels like some sort of witchcraft.


I also understand completely why $2^{\aleph\_0}=\kappa$, and I have to admit that this is one clever argument, but I can't really see the full intuition behind it. I just see that it works, and I can reason why it works, by MA there is a generic for any $<\kappa$ dense sets, but this means that we have to have at least $\kappa$ dense subsets in the universe so $2^{\aleph\_0}\geq\kappa$, where the other side of the inequality follows from the fact that $|P|\leq\kappa$ and $P$ is c.c.c.




---


Can anyone shed some intuition behind the proof? Some insights about why it works?



Why does the Solovay-Tennenbaum theorem work?
There are $\kappa$ many stages in which you add Cohen reals. so you will have at least $\kappa$ reals at the end. This is really a very simple principle: "if you want to add something, add it."


THe other direction is slightly more involved: Do not add anything you don't want to add, and keep your fingers crossed that unwanted objects (such as: more than $\kappa$ reals) don't find their way into the construction anyway.


The "nice names" argument is very basic and practically always used whenever you want to get an upper bound on the number of new reals. Every new real $x$ is described by a family of countably many maximal antichains, plus a coloring functions mapping each antichain into 
$\{0,1\}$ --- assigning to condition $p$ in antichain $A\_n$ the value that $p$ forces to $x(n)$. Count how many such families of colored antichains there are, this will be an upper bound on the continuum in the extension. 


If you want to count subsets of $\lambda$, you will of course have $\lambda$ many antichains. 


