To prove that some language is not regular, we need to show that there is no FSA that can recognise it. This is pretty difficult, so both methods of proving non-regularity require additional tools

Proving Non-Regularity Via Pumping Lemma

#todo

Proving Non-Regularity Via Fooling Sets

See an example of an infinite fooling set:

Fooling Set.md

Thus, the language:

Extending With Closure Properties

Union

We can use the contrapositive of some closure properties:

If we have two languages and , and is regular, then if we know that is non-regular, then it must be that is non-regular.

Complement

A much simpler one is the complement of a regular language:

Taking the contrapositive yields:

Concatenation

Regular Language.md

Again, the contrapositive means that if is not regular, then one of or (or both) are non-regular.

If we have a regular language , and we somehow know concatenating it with another language to get is not regular, then the contrapositive allows us to deduce that must be non-regular.

Kleene Star

Another easy unary operator: Regular Language.md

The contrapositive yields: