# Regular Languages - Sample Problems

## CS390, Fall 2019

# 1 Using the Pumping Lemma

We start with problems related to the Pumping Lemma:

Theorem 4.1: (Thepumping lemma for regular languages)Let $L$ be a regular language. Then there exists a constant $n$ (which depends on $L$) such that for every string $w$ in $L$ such that $|w| \geq n$, we can break $w$ into three strings, $w = xyz$, such that

- $y \ne \epsilon$
- $|xy| \leq n$, and
- $\forall k \geq 0$, the string $xy^kz$ is also in $L$.

Use the Pumping Lemma to prove the following:

Prove that the language over {0,1} consisting of all strings with equal numbers of zeros and ones is not a regular language.

Prove that the language $L = {0^m1^m | m \geq 1 }$ is not a regular language.

# 2 Decision procedures

Decision procedures are, in essence, algorithms that return a boolean true/false result.

## 2.1 Give a decision procedure for determining if the language accepted by a DFA is empty.

## 2.2 The decision procedure for distinguishing states

Two states are distinguished/distinguishable if there is some input that gives a different accepting/non-accepting result when starting from those states.

Which of the states in this DFA are distinguishble?

# 3 Minimizing States in a Finite Automaton

What is the smallest DFA accepting the same language as this FA?