I'm trying to learn about forcing, and have heard that there are several equivalent ways to define genericity. For instance, let M be a transitive model of ZFC containing a poset (P, ≤). Suppose G ⊆ P is such that q ∈ G whenever both p ∈ G and q ≥ p. Suppose also that whenever p,q ∈ G then there is r ∈ G such that r ≤ p and r ≤ q. Then the following are equivalent ways to say that G is generic:

(1) G meets every element of M dense in P. That is, for all D ∈ M, if for all p ∈ P there is q ∈ D such that q ≤ p, then G ∩ D is nonempty.

(2) G is nonempty and meets every element of M dense below some p ∈ G. That is, for all p ∈ G and all B ∈ M, if for each q ≤ p there is r ∈ B such that r ≤ q, then G ∩ B is nonempty.

Proving this equivalence seemed like it would be an easy exercise, but I think I'm missing something. Can someone point me toward a source where I can find a proof? I hope this is an acceptable question; this is my first time posting.

EDIT: Typo and omission fixed.