“To understand the power of finite automata, you must also understand their limitations” - Sipser (Introduction to the Theory of Computation)
Permissive Patterns
Sometimes, you’ll have a language like .
looks non-regular, because it seems to require unbounded counting (counts that can go up to infinity).
However, is a highly permissive pattern which means that it allows
tl;dr: Be vary careful of permissive patterns
Pumping Lemma
I will present Sipser’s version of the Pumping Lemma for Regular Languages.
Myhill-Nerode Theorem
Indistinguishability
Two words are said to be indistinguishable iff
Intuition for Myhill-Nerode
Consider a regular language . Since it is regular, there must exist some DFA for it.
If the runs of two words lead to the same final state (not necessarily an accepting state) in the DFA , then those two words cannot be distinguished. Whenever you add the same word to the end of and to the end of , it will lead to the exact same state.
Therefore, two distinguishable words must have runs leading to different final states. Thus we have that:
So if we can prove there are an infinite number of words that are distinguishable from one another, then we prove there are at least an infinite number of states in .
So any DFA for the language must have a non-finite number of states hence no DFA for exists (DFAs must have a finite number of states), so is non-regular.
Shitposting Notes
CATCH UP ON THE FIRST 10 MINS OF THIS LECTURE
Pumping Lemma🥵