Regular Languages - Sample Problems

CS390, Fall 2019

Last modified: Jul 23, 2019

1 Using the Pumping Lemma

We start with problems related to the Pumping Lemma:

Theorem 4.1: (The pumping 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

  1. $y \ne \epsilon$
  2. $|xy| \leq n$, and
  3. $\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?