Assume, for the sake of contradiction, that L is a regular language. Therefore, according to the Pumping Lemma, there exists a pumping length p ≥ 1 such that any string s ∈ L with |s| ≥ p can be divided into three pieces: s = xyz.
Any sufficiently long string can be split into x, y, z such that repeating y keeps the string valid.
Hover and notice how y stands out !
Increasing k repeats y.
Finite automata have only a limited number of states, so they cannot remember long strings exactly. When they process a string longer than their number of states, they are forced to revisit some state, creating a loop. This loop corresponds to a part of the string called y. Since the automaton behaves the same each time it goes around this loop, repeating or removing y does not change whether the string is accepted. This is why in regular languages, the string can be “pumped” by repeating y any number of times.
Pumping breaks the condition → Not Regular ❌
Assume, for the sake of contradiction, that L is a regular language. Therefore, according to the Pumping Lemma, there exists a pumping length p ≥ 1 such that any string s ∈ L with |s| ≥ p can be divided into three pieces: s = xyz.