Chapter 1
Introduction to the Theory of
Computation
1
Theory of Computation
Can we mathematically model the computation?
Automata Theory
Regular languages: DFA, NFA, Regular expressions
Context-free languages: Context-free grammar,
pushdown automata
Turing machines: the most powerful model of
computation
Can the computer solve all problems?
Computability Theory
Halting problem
How efficient the solution is?
Complexity Theory
Time and space complexity (Big O notation)
2
1.1 Mathematical Preliminaries
Sets (1)
A set is a collection of objects
Order and repetition is irrelevant
X = {1, 2, 3}
X = {n | 1 n 3, n N }
Y = { } = Y is an empty set
The power set of X is the set of all subsets of X
(X) = 2X = { Y | Y X}
|(X)| = 2|X|
Example X = {1, 2, 3}
2X = (X)={{},{1},{2},{3},{1,2},{1,3},{2,3}, {1,2,3}}
{1,2} X
is a proper subset of X
{1,2,3} X is NOT a proper subset of X
{1,2,3} is a superset of3{1, 2}
Sets (2)
The symbol signifies membership (belong to):
x X indicates that x is a member or element
of the set X
x X indicates that x is not a member or
element of the set X
Assume X = {1, 2, 3}, then
1 X, but 4 X
Two sets are equal if they contain the same
members (elements)
If X = {1, 2, 3}, Y = {1, 2, 3}, and Z = {2, 3, 4}
Then X = Y, but X Z, and so Y Z
4
Sets (3)
Assume X = {1,2,3} and Y = {2,4}
Union
X Y = {z | z X or z Y} = {1,2,3,4}
Intersection
X Y = {z | z X and z Y} = {2}
Difference
X - Y = {z | z X and z Y} = {1,3}
5
Sets (4)
Complement
Let X be a subset of Y
The complement of X ( X ) with respect to Y is
the set of elements in Y but not in X
X = { z | z Y and z X } = Y - X
Assume X = {1,2,3} is a subset of Y = {1,2,3,4}
X = {4}
DeMorgan’s Laws
(X Y) = X Y
(X Y) = X Y
6
Inductive Proofs
Prove a statement S(X) about a family of objects X
(e.g., integers, trees) in three parts:
Basis Step:
Prove for one or several small values of X directly
Inductive step:
Assume S(Y) for Y smaller than X
Prove S(X) using that assumption
7
Inductive Proofs (EX1)
Prove by induction that
S: 1 + 2 + 3 + ……+ n = n (n + 1) / 2
Basis step:
n=1
1 ( 1 + 1) / 2 = 1
Induction step (assumption step):
Assume that S is true for all series of length < n
Prove that S is true for a series of length n?
The series of length n is
1+2+3+…+n-1+n
By the assumption 1+2+…+n-1 = (n-1)((n-1)+1)/2
Add n to the summation proves S.
8
Inductive Proofs (EX2)
Example
A complete binary tree with n leaves has 2n - 1
nodes
Proof:
Formally, S(T): if T is a binary tree with n
leaves, then T has 2n – 1 nodes
Induction is on the size = number of nodes of T
9
Inductive Proofs (EX2)
Basis:
If T has 1 leaf, it is a one-node tree. 1 = 2*1 - 1, so
OK
Induction:
Assume S(U) for trees with fewer nodes than T. In
particular, assume for the subtrees of T
T must be a root plus two subtrees U and V.
If U and V have u and v leaves, respectively, and T
has t leaves, then u + v = t.
Proof:
By the inductive hypothesis, U and V have 2u - 1 and
2v - 1 nodes, respectively.
Then T has 1 + (2u -1) + (2v - 1) = 2(u + v) - 1 = 2t 1
Proving the inductive step
10
If-And-Only-If Proofs
Often, a statement we need to prove is of the form
“X if and only if Y”
We are then required to do two things:
Prove the if-part: Assume Y and prove X
Prove the only-if-part: Assume X, prove Y
Remember:
The if and only-if parts are converses of each
other
One part, say “if X then Y” says nothing about
whether Y is true when X is false.
An equivalent form to “if X then Y” is “if not Y
then not X”; the latter is the contra-positive of the
former.
11
Equivalence of Sets
Many important facts in language theory are of the
form that two sets of strings, described in two
different ways, are really the same set
To prove sets S and T are the same, prove:
x is in S if and only if x is in T. That is:
Assume x is in S; prove x is in T .
Assume x is in T ; prove x is in S.
12
Functions
Let f be a function defined on a set A and taking values in
a set B. Set A is called the domain of f; set B is called the
range of f.
Function f is said to be one-to-one if, whenever f(x) = f(y),
it must be the case that x = y.
In other words, f is one-to-one if it maps distinct
objects to distinct objects.
Function f is said to be onto if, for any b B, there exists
an a A for which f(a) = f(b).
A function is bijection if it is one-to-one and onto.
If function f is defined for each element of A, then f is said
to be a total function; otherwise, f is said to be a partial
function.
13
Relations
Given two sets, X and Y, a relation R is a set of
ordered pairs (x, y) where x X and y Y
Equivalence relations
Reflexive
R is reflexive if for every a A, then (a, a) R
Symmetric
R is symmetric if for every a and b in A, if (a, b)
R, then also (b, a) R
Transitive
R is transitive if for any a, b, c, if (a, b) and (b, c)
R, then also (a, c) R
R is an equivalence relation if R is reflexive,
symmetric and transitive
14
1.2: Strings and Languages (1)
Alphabet: Finite, nonempty set of symbols
Examples:
= {0, 1}: binary alphabet
= {a, b, c, …, z}: the set of all lower case letters
The set of all ASCII characters
String: Finite sequence of symbols from an
alphabet
Examples:
01101 where = {0, 1}
abracadabra where = {a, b, c, …, z}
15
1.2: Strings and Languages (2)
Empty String: The string with zero occurrences of
symbols from and is denoted e or
Length of String: Number of symbols in the string
The length of a string w is usually written |w|
|1010| = 4
|e| = 0
|uv| = |u| + |v|
Reverse : wR
If w = abc, wR = cba
16
1.2: Strings and Languages (3)
Concatenation: if x and y are strings, then xy is the
string obtained by placing a copy of y immediately
after a copy of x
x = a1a2 …ai, y = b1b2 …bj
xy = a1a2 …aib1b2 …bj
Example: x = 01101, y = 110, xy = 01101110
xe = ex = x
17
1.2: Strings and Languages (4)
Power of an Alphabet: k = the set of strings of length k
with symbols from
Example: = {0, 1}
1 = = {0, 1}
2 = {00, 01, 10, 11}
0 = {e}
Question: How many strings are there in 3?
The set of all strings over is denoted *
* = 0 1 2 3 …
Also
+ = 1 2 3 …
* = + {e}
+ = * - {e}
18
1.2: Strings and Languages (5)
Substring: any string of consecutive characters in
some string w
If w = abc
e, a, ab, abc are substrings of w
Prefix and suffix:
if w = vu
v is a prefix of w
u is a suffix of w
Example
If w = abc
a, ab , abc are prefixes of w
c, bc, abc are suffixes of w
19
1.2: Strings and Languages (6)
Suppose: S is the string banana
Prefix : ban, banana
Suffix : ana, banana
Substring : nan, ban, ana, banana
Proper prefix, suffix, or substring cannot be all
of S
20
1.2: Strings and Languages (8)
Language: set of strings chosen from some alphabet
A language is a subset of *
Example of languages:
The set of valid Arabic words
The set of strings consisting of n 0’s followed by n 1’s
– {e, 01, 0011, 000111, …}
The set of strings with equal number of 0’s and 1’s
– {e, 01, 10, 0011, 0101, 1010, 1001, 1100, …}
Empty language: = { }
The language {e} consisting of the empty string
Note: {e}
21
1.2: Strings and Languages (9)
Can concatenate languages
L1L2 = {xy | x L1, y L2}
Ln = L concatenated with itself n times
L0 = {e}; L1 = L
Star-closure
L* = L0 L1 L2 ...
L+ = L* - L0
Languages can be finite or infinite
L = {a, aba, bba}
L = {an | n > 0}
22
1.2: Strings and Languages (10)
OPERATION
union of L and M
written L M
concatenation of L
and M written LM
Kleene closure of L
written L*
DEFINITION
L M = {s | s is in L or s is in M}
LM = {st | s is in L and t is in M}
L* = Li , i=0,..,
L* denotes “zero or more concatenations of “ L
positive closure of L
written L+
L+ = Li, i=1,..,
L+ denotes “one or more concatenations of “ L
L+ = LL*
23
1.2: Strings and Languages (11)
L = {A, B, …, Z, a, b, …z}
D = {1, 2, …, 9}
L D = the set of letters and digits
LD = all strings consisting of a letter followed by a digit
L2 = the set of all two-letter strings
L4 = L2 L2 = the set of all four-letter strings
L* = { All possible strings of L plus e }, L+ = L* - e
D+ = set of strings of one or more digits
L (L D ) = set of all strings consisting of a letter
followed by a a letter or a digit
L (L D )* = set of all strings consisting of letters and
digits beginning with a letter
24
1.2: Strings and Languages (12)
The language L consists of strings over {a,b} in
which each string begins with an a should have an
even length
aa, ab L
aaaa,aaab,aaba,aabb,abaa,abab,abba,abbb L
baa L
AL
25
1.2: Strings and Languages (13)
The language L consists of strings over {a,b} in
which each occurring of b is immediately
preceded by an a
eL
aL
abaab L
bb L
bab L
abb L
26
1.2: Strings and Languages (14)
Let X = {a,b,c} and Y = {abb, ba}. Then
XY = {aabb, babb, cabb, aba, bba, cba}
X0 = {e}
X1 = X = {a,b,c}
X2 = XX = {aa,ab,ac,ba,bb,bc,ca,cb,cc}
X3 = XXX =
{aaa,aab,aac,aba,abb,abc,aca,acb,acc,baa,bab,ba
c,bba,bbb,bbc,bca,bcb,bcc,caa,cab,cac,cba,cbb,
cbc,cca,ccb,ccc}
27
1.2: Strings and Languages (15)
The language L = {a,b}*{bb}{a,b}* =(a|b)*bb(a|b)*
=*bb*
consists of the strings over {a,b} that contain
the substring bb
bb L
abb L
bbb L
aabb L
bbaaa L
bbabba L
abab L
bab L
bL
28
1.2: Strings and Languages (16)
Let L be the language that consists of all strings that begin
with aa or end with bb
L1 = {aa}{a,b}*
L2 = {a,b}*{bb}
L = L1 L2 = {aa}{a,b}* {a,b}*{bb}=aa* | *bb
bb L
abb L
bbb L
aabb L
bbaaa L
bbabba L
abab L
bab L
ba L
29
1.2: Strings and Languages (16)
Let L1 = {bb} and L2 = {e, bb, bbbb} over b
The languages L1* and L2* both contain precisely
the strings consisting of an even number of b’s.
e , with length zero, is an element of L1* and L2*
30
1.2: Strings and Languages (17)
What is the language of all even-length strings over
{a,b}
L = {aa, bb, ab, ba}* = (aa|bb|ab|ba)*
What is the language of all odd-length strings over
{a,b}
L = {a,b}* - {aa, bb, ab, ba}* or
L = {a,b}{aa, bb, ab, ba}*
or
L = {aa, bb, ab, ba}* {a,b}
or
L = (a|b)(aa|bb|ab|ba)*
31
© Copyright 2026 Paperzz