Intersection of two generic extensions It is well known that the intersection of two models of ZFC does not have to be a model of ZFC (or even ZF). Now what if we restrict ourselves to models $M[G]$, $M[H]$ which are generic over $M$ for the same poset $\mathbb{P}$? What about their intersection. It is not too difficult to show that if $G \times H$ is $\mathbb{P} \times \mathbb{P}$ generic over $M$, then $M[G] \cap M[H] = M$ is a model of ZFC. But if $G$ and $H$ are arbitrary then this need not be the case and I have an example below. But this example looks fairly complicated and I am wondering whether this is already the case for Cohen forcing, i.e:  
Can we find two Cohen reals $c_0$, $c_1$ over $M$ so that $M[c_0] \cap M[c_1]$ is not a model of ZF? 
The simplest reason for $M[c_0] \cap M[c_1]$ not satisfying ZF would be a failure of power set in the form that $M[c_0] \cap M[c_1]$ contains no set of all reals but I see no obvious way to do this. If $c_0$, $c_1$ are Sacks reals over $M$ then $M[c_0]$ either contains the same reals as $ M[c_1]$ or they only share those of $M$ so this sort of failure is impossible in this case. 
The following is an example where this is true: 
Let $\mathbb{P}$ be $\prod_{n \in \omega} \mathbb{C}(\omega_n)$. This is the standard Easton product for adding one $\omega_n$-Cohen real for every $n$. Let $A \subseteq \omega$ be some very bad real that codes, say, a well order of $M$'s height. Now I claim that we can find two generics $\bar x = \langle x_n \rangle_{n \in \omega}$, $\bar y = \langle y_n \rangle_{n \in \omega}$ so that $x_n = y_n$ exactly when $n \in A$ and for any $n \notin A$, $M[\bar x]$ and $M[\bar y]$ have no common $\mathbb{C}({\omega_n})$ generics over $M$. Then if $M[\bar x] \cap M[\bar y]$ was a model of ZF, we could decode $A$. 
How to construct $\bar x, \bar y$? Let $\langle D_i \rangle_{i \in \omega}$ enumerate all dense subsets of $\mathbb{P}$ in $M$ and $\langle (\tau^0_i, \tau^1_i, n_i,) \rangle_{i \in \omega}$ enumerate all triples where $\tau^0_i$, $\tau^1_i$ are $\mathbb{C}({\omega_{n_i}})$ names in $M$ for $n_i \notin A$. Now construct $\langle p_i \rangle$, $\langle q_i \rangle$ decreasing sequences in $\mathbb{P}$ as follows: We assume that $p_i,q_i$ agree on coordinates in $A$. Extend $p_i$ to $p'$ and $q_i$ to $q'$ so that $p',q' \in D_i$ and $p',q'$ still agree on coordinates in $A$ (first extend $p_i$ to $p_i'' \in D_i$ , then let $q''$ extend $q_i$ by agreeing with $p''$ on places where $q_i$ and $p_i$ already agreed, then extend $q''$ to $q' \in D_i$ and then $p''$ to $p'$... ). 
Now note that $\prod_{n \neq n_i} \mathbb{C}(\omega_n)$ does not add any $\mathbb{C}({\omega_{n_i}})$ generic over $M$. This means that if $\tau$ is a $\mathbb{P}$ name for a $\mathbb{C}(\omega_{n_i})$ generic and $r \in \mathbb{P}$, then $r$ can be extended to $r'$ on coordinates different than $n_i$ so that there are $\sigma \perp \sigma' \in \mathbb{C}({\omega_{n_i}})$ so that $\sigma \subseteq \tau$ or $\sigma' \subseteq \tau$ can be forced by extending the $n_i$'th coordinate (and only this coordinate). Now using this extend $p'$ to $p_{i+1}$ and $q'$ to $q_{i+1}$ again so that they agree on coordinates in $A$ but $\tau^0_i[\bar x]$ and $\tau^1_i [\bar y]$ will disagree.
 A: Let $M$ be a countable transitive model. Fix $a\subseteq \omega$ such that $a$ is not generic over $M$. We plan to construct a pair of $M$-generic Cohen reals $G_0$ and $G_1$ such that $P(\omega)\cap M[G_0]\cap M[G_1]$ encodes $a$ and hence does not belong to $M[G_0]$ or $M[G_1]$ let alone $M[G_0]\cap M[G_1]$.
Since adding $\omega$ Cohen reals is the same as adding a single one, we might as well instead construct a pair of $M$-generics $G_0,G_1\subseteq \text{Add}(\omega,\omega)$ with the property described above.
We build $M$-generic sets $G_0,G_1\subseteq \text{Add}(\omega,\omega)$ such that if $\langle g^0_n : n < \omega\rangle$ and $\langle g^1_n : n < \omega\rangle$ are the associated reals then


*

*For all $n\in a$, $g^0_n = g^1_n$. 

*For all $n\notin a$, $g^0_n\times
    G_1$ is generic for $\text{Add}(\omega,1)\times
    \text{Add}(\omega,\omega)$.

*For all $n\notin a$, $g^1_n\times
    G_0$ is generic for $\text{Add}(\omega,1)\times
    \text{Add}(\omega,\omega)$.


It follows that $S = P(\omega)\cap M[G_0]\cap M[G_1]\notin M[G_0]$, since $a = \{n : g^0_n\in S\}$ can be computed from $S$ and $G_0$ and $a\notin M[G_0]$. In particular $S\notin M[G_0]\cap M[G_1]$, so $M[G_0]\cap M[G_1]$ does not satisfy the Powerset Axiom.
The generics are constructed by building two decreasing sequences of $\text{Add}(\omega,\omega)$ conditions $\langle p^i : i < \omega\rangle$ and $\langle q^i : i < \omega\rangle$ converging to $G_0$ and $G_1$ respectively, inductively meeting the countably many relevant dense sets while maintaining at each stage $i$ that $p^i_n = q^i_n$ for $n\in a$ by copying the information on the coordinates in $a$ every time one extends a condition. This can be done because the steps enforcing genericity in $\text{Add}(\omega,1)\times\text{Add}(\omega,\omega)$ only add information on the coordinates in $a$ to one of the sequences.
