CFLs are not closed under intersection
A pushdown automaton (PDA) has one stack — a single stack of plates where you only touch the top. That one stack is enough to match ONE pair of things that must be equal, like the a's and the b's in a^n b^n: push a marker for each a, pop one for each b. But intersection secretly asks a machine to enforce TWO counting conditions at once, and one stack cannot keep two independent tallies. That is the heart of why intersecting two context-free languages can land you OUTSIDE the family.
The standard counterexample uses three letters. Let L1 = { a^n b^n c^m : n, m >= 0 } — the a's must equal the b's, and the c's are free. This is context-free: a PDA matches a's against b's with its stack and ignores the c's. Let L2 = { a^m b^n c^n : n, m >= 0 } — now the b's must equal the c's, and the a's are free; this is also context-free by a symmetric machine. Their intersection L1 ∩ L2 forces a's = b's AND b's = c's, which means all three counts are equal: { a^n b^n c^n : n >= 0 }. That language is provably NOT context-free (the pumping lemma kills it). So two CFLs intersected gave a non-CFL — the family is not closed under intersection.
Why does the single-stack picture explain this? To check a^n b^n c^n a machine would have to remember the count of a's while matching b's, then STILL have that count available to match c's — but a stack that pops to match the b's has destroyed the record it needs for the c's. The closure failure is a direct shadow of the PDA's one-stack memory. A machine with two stacks could do it, but two stacks already give the full power of a Turing machine, far beyond context-free.
L1 = { a^n b^n c^m } (context-free) and L2 = { a^m b^n c^n } (context-free). Their intersection is { a^n b^n c^n } (not context-free). Two members of the club combined to produce a non-member — proof that the family is not closed under intersection.
Two CFLs whose intersection is the non-context-free language a^n b^n c^n.
Non-closure under intersection does NOT mean the intersection is always non-CFL — sometimes it is. It only means the family is not GUARANTEED to be closed: one counterexample suffices to break closure.