How to prove this language is context free? There's lots of ways to prove a language is not context free. Going through some exercises, I'm stuck at a question that asks me to prove that a language is indeed context free.

$L = \{a^{(n+1)} b^{(m+2)}c^{(n+4)}\ |\ m, n ≥ 0 \}$

I see that the langauge is equivalent to $L = \{aa^nbbb^mccccc^n\}$, but I'm not sure if that helps at all. 

Maybe breaking the language apart into a concatenation of three languages like $\{a^{n+1} | n&gt;= 0\}.\{b^{m+2} | m &gt;= 0\}.\{c^{n+4} | n&gt;=0\}$ might be helpful, because we can do a rule separately for each? The n has to be equal for the left and right side though, which I'm having difficulty with.

Any help would be much appreciated!
I see that the language is equivalent to $L = \{aa^nbbb^mccccc^n\}$,


Indeed


  but I'm not sure if that helps at all.


Well, maybe not. How about if we write the equivalent language ever-so-slightly differently:

$$L = \{a^nabbb^mccccc^n\}$$

That's the same as

$$\begin{align}L &amp;= \{a^nMc^n\}\\
M &amp;= \{abbb^mcccc\}\\
\end{align}$$
And then
$$\begin{align}L &amp;= \{a^nMc^n\}\\
M &amp;= \{abbNcccc\}\\
N &amp;= \{b^m\}\\
\end{align}$$
Which seems pretty straight-forward.

Or, to put it another way: Look for symmetries. Or try to create them.