Source: http://www.cs.ucsb.edu/~cappello/136/lectures/10nonregularlanguages/slides.pdf