The pumping lemma is a tool used in the theory of formal languages to prove that certain languages are not regular. It states that for any sufficiently long string in a regular language, it can be broken down into three parts which can then be repeated an arbitrary number of times. This allows for the proof of non-regularity by finding a contradiction.

A foundational course that introduces formal languages, automata, computability, and complexity theories, including finite automata, Turing machines, and P/NP classes.