title: Why is {a^nb^n | n >= 0} not regular?
body: <p>In a CS course I'm taking there is an example of a language that is not regular:</p>
  
  <pre><code>{a^nb^n | n &gt;= 0}
  </code></pre>
  
  <p>I can understand that it is not regular since no Finite State Automaton/Machine can be written that validates and accepts this input since it lacks a memory component. (Please correct me if I'm wrong)</p>
  
  <p>The <a href="http://en.wikipedia.org/wiki/Regular_language" rel="noreferrer">wikipedia entry on Regular Language</a> also lists this example, but does not provide a (mathematical) proof why it is not regular.</p>
  
  <p>Can anyone enlighten me on this and provide proof for this, or point me too a good resource?</p>