What is a $P$-name in forcing theory I am having troubles understanding what is a $P$-name is forcing theory and what is the purpose of this term in the forcing tecnique.
Is there any simple way to explain this term.
If there was I would be greatfull if you shared it with me.
I read about it in Jech's book and in Kunnen's book but I am drowning in the technical detains.
I did get the terms "generic filter" or Martin's Axiom. But this one...:(
The only idea coming to my head is this:
M is a transitive countable model. $G \subseteq M$ is $P$-generic. $G \notin M$. We want to add $G$ as an element. But, $G$ may not be transitive. So, we add all the $(\alpha,p)$ where $\alpha \in M$, $p \in G$. 
Another question, Can I assome that all the elements of $M$ are sets of ordinals?
(M is a countable transitive model of ZFC)
Thank you!

 A: Long comment
1) in Def.4.8 I suppose there is a typo ... I think it must be :

$\tau[G]$ is the set : $\{ \sigma[G] \mid \langle \sigma, p \rangle \in \tau \ \ \text {and} \ \ p \in G \}$

2) if we apply that definition to the example with $\tau = \{ \langle \emptyset , \mathbf 1 \rangle \}$, we have that :

$\tau[G] = \{ \sigma[G] \mid \langle \sigma, p \rangle \in \tau \ \ \text {and} \ \ p \in G \} = \{ \sigma[G] \mid \langle \sigma, p \rangle \in \{ \langle \emptyset , \mathbf 1 \rangle \} \ \ \text {and} \ \ p \in G \} = \{ \sigma[G] \mid \langle \sigma, p \rangle = \langle \emptyset , \mathbf 1 \rangle  \ \ \text {and} \ \ p \in G \} = \{ \sigma \mid  \sigma = \emptyset  \} = \{ \emptyset\}$

because $\mathbf 1 \in G$ : $\mathbf 1$ is the maximal element which belongs to every filter $G$.
Note that the set $\{ \emptyset\}$ is not the empty set, because it has one element : the empty set.
3) for the case with $\tau = \{ \langle \emptyset , p \rangle \}$, where $p \notin G$, we again apply the definition :

$\tau[G] = \{ \sigma[G] \mid \langle \sigma, p \rangle \in \tau \ \ \text {and} \ \ p \in G \} = \{ \sigma[G] \mid \langle \sigma, p \rangle \in \{ \langle \emptyset , p \rangle \} \ \ \text {where} \ \ p \notin G \ \ \text {and} \ \ p \in G \} = \{ \sigma[G] \mid \langle \sigma, p \rangle = \langle \emptyset , p \rangle  \ \ \text {where} \ \ p \notin G \ \ \text {and} \ \ p \in G \}$, 

but clearly the condition "$p \in G$ and $p \notin G$" is never satisfied and thus the definition amounts to : $\tau[G] = \emptyset$.
A: I'm not sure what you mean by $G$ may not be transitive, but I will try to give a very hand wavy non technical explanation of a $p$ name. I would still recommend too keep working through the definitions in Kunen and Jech, since the technical background is important.
A $\mathbb{P}$-name $\tau$ (I will also refer to it as just name) is a description of an element of $M[G]$. The way it describes the element is by choosing just which sets it will contain in a recursive fashion. Since in set theory everything is made of sets each $\mathbb{P}$-name $\tau$ gives a complete description of just how the set it should turn into when evaluated with respect to a given $G$ will look.
Let's ignore the definition of a $\mathbb{P}$-name for the moment and consider how we might define it on our own. To do that first think of how we work with MA. Under MA the situation is much easier since we are usually just "building" one object with each poset. Let's take the most basic poset $\{f; f:\omega\rightarrow\omega \text{ is a partial function}\}$ ordered by inclusion. This is the poset we use for many different purposes. One I'm thinking of now is showing that under $MA+\neg CH$ we have $\mathfrak{d}=\mathfrak{c}$. That is the dominating number is as big as it can be. The poset gets used in the most obvious way, we take a generic $G$ through dense sets which will be determined by our attempted dominating family of size $<\mathfrak{c}$. Each dense set will ensure that the union of our $G$ will not be dominated by the small family. 
So in MA what is the "name" for the "new" element? Well we just need each element of $G$ to add the appropriate pairs to our resulting function so you could just think of the name as consisting for each $p\in \mathbb{P}$ of $p\times${ the set of all pairs of values $p$ already determines}. Then when you evaluate at $G$ you get yourself a total function satisfying everything you need.
Why would something like that not work for forcing? It seems easier to just have a $\mathbb{P}$-name be a set of pairs $\{<x,p>; x\in M\wedge p\in\mathbb{P}\}$. The problem is that unlike in MA where everything exists allready; i.e. we have model where MA is true and we are not really building anything we are just proving that something already exists. When you force the evaluation of your $\mathbb{P}$-names actually has to create a whole new model of set theory. This approach to building $\mathbb{P}$-names would leave out many elements. For example if you add new sets $A,B\not\in M$ then the set $<A,B>$ can't be described by any $\mathbb{P}$-name of the kind I just defined.
The preceding paragraph shows that to get names that will evaluate to enough of the new model we will need to define them recursively. If I add a new element to my model I also have to add it's power set and the one element set containing the new element and the one element set containing the one element set containing the element. We could just extend our definition to allow in addition to $\{<x,p>; x\in M\wedge p\in\mathbb{P}\}$ any $\mathbb{P}$-name in the first coordinate (we actually already do in this definition this is more about the evaluation function, but I am hand waving). This just adds complexity though since the evaluation function is then sometimes going to apply recursively (when x is a $\mathbb{P}$-name) and sometimes just stop (when x is some other arbitrary set in $M$).
This leads us to the definition of $\mathbb{P}$-names as given in your OP. Instead of allowing arbitrary sets in $M$ as the first coordinate we will have each $\mathbb{P}$-name be a set of pairs $<\alpha,p>$ where $\alpha$ is a $mathbb{P}$-name of a lower rank and $p$ is an element of our poset.
To give an example let's take a look at one $\mathbb{P}$-name for the set $2$.
We want the result to evaluate to $\{\emptyset,\{\emptyset\}\}=2$ no matter which $G$ we choose. So we let $\tau=\{<\emptyset,\mathfrak{1}>,<\{<\emptyset,\mathfrak{1}>\},\mathfrak{1}>\}$.
Now obviously this is a very boring name since it doesn't make any choices. Suppose you want a name which evaluates to $1$ if $p\in G$ and to $\{1\}$ if $g\in G$ and to $2$ if both $p$ and $g$ are in $G$. Then you get $\tau=\{<\emptyset,p>,<\{<\emptyset,\mathfrak{1}>\},g>\}$. Now if $p\in G$ you get $val(\tau,G)\ni \emptyset$, if $g\in G$ then $val(\tau,G)\ni 1=\{\emptyset\}$ and if both $p$ and $g$ is in $G$ you get $val(\tau,G)=\{\emptyset,\{\emptyset\}\}=2$.
I hope this helped some comments and questions are welcome.
A: Here is an example of mine for a $\mathbb P$-name for $A = \{ 0,2 \}$. What do you think?

