title: An infinite language can't be regular? What is a finite language?
body: <p>I read this in a book on computability:</p>
  
  <blockquote>
    <p>(Kleene's Theorem) A language is regular if and only if it can be
    obtained from finite languages by applying the three operations union,
    concatenation, repetition a finite number of times.</p>
  </blockquote>
  
  <p>I am struggling with "finite languages".</p>
  
  <p>Consider this language: <code>L = a*</code></p>
  
  <p>It is not finite. It is the set <code>{0, a, aa, aaa, ...}</code> which is clearly an infinite set (<code>0</code> = the empty string).</p>
  
  <p>So it is an infinite language, right? That is, "infinite set" means "infinite language", right?</p>
  
  <p>Clearly, <code>a*</code> is a regular language. And it is an infinite language. Thus, by Kleene's Theorem it cannot be a regular language. Contradiction.</p>
  
  <p>I'm confused. I guess that I don't know what "finite language" means.</p>