0% found this document useful (0 votes)
24 views63 pages

Formal Language and Automata Theory: Cheng-Chia Chen

This document provides an introduction and outline for a course on formal languages and automata theory. It will cover mathematical preliminaries including sets, relations, functions, and proofs. It will then cover the basics of formal languages including alphabets, words, sentences, and operations. The course is divided into three parts: (1) finite automata and regular sets, (2) pushdown automata and context-free languages, and (3) Turing machines and effective computability. The goals are to understand models of computation and characterize computable languages, problems, and functions. Various representations of languages using grammars will also be studied.

Uploaded by

rishikarthick
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views63 pages

Formal Language and Automata Theory: Cheng-Chia Chen

This document provides an introduction and outline for a course on formal languages and automata theory. It will cover mathematical preliminaries including sets, relations, functions, and proofs. It will then cover the basics of formal languages including alphabets, words, sentences, and operations. The course is divided into three parts: (1) finite automata and regular sets, (2) pushdown automata and context-free languages, and (3) Turing machines and effective computability. The goals are to understand models of computation and characterize computable languages, problems, and functions. Various representations of languages using grammars will also be studied.

Uploaded by

rishikarthick
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 63

formal Language

Transparency No. 1-1


Formal Language and
Automata Theory
Cheng-Chia Chen

September 2011

Introduction
Transparency No. 1-2
Course outlines
- Introduction:
Mathematical preliminaries:
sets, relations, functions,sequences, graphs, trees, proof by
induction, definition by induction (recursion).
Basics of formal languages:
alphabet, word, sentence, concatenation ,union, iteration [= Kleene
star], language, infinity of languages, finite representations of
languages
- PART I: Finite Automata and Regular Sets
DFA,NFA,regular expressions and their equivalence
limitation of FAs;
Closure properties of FAs,
Optimization of FAs
Introduction
Transparency No. 1-3
course outline (cont'd)
- PART II: Pushdown Automata and Context Free
Languages
CFGs and CFLs; normal forms of CFG
Limitation of CFG; PDAs and their variations,
closure properties of CFLs
Equivalence of pda and CFGs; deterministic PDAs
parsing (Early or CYK's algorithms)
- PART III: Turing Machines and Effective
Computability
Turing machine [& its variations] and Equivalence models
Universal TMs
Decidable and undecidable problems (Recursive sets and
recursively enumerable sets)
Problems reductions ; Some undecidable problems
Introduction
Transparency No. 1-4
Goals of the course
- understand the foundation of computation
- make precise the meaning of the following terms:
[formal] languages, problems, Programs, machines,
computations
computable {languages, problems, sets, functions}
- understand various models of machines and their
relative power : FA, PDAs, LA (linear bounded
automata), TMs, [register machines, RAMs,...]
- study various representations of languages in finite
ways via grammars: RGs, CFGs, CSGs, general PSGs
formal Language
Transparency No. 1-1
Chapter 1 Introduction
Introduction
Transparency No. 1-6
Mathematical preliminaries (reviews)
- sets (skipped)
- functions (skipped)
- relations
- induction
- Recursive definitions
Introduction
Transparency No. 1-7
7
Sets
- Basic structure upon which all other (discrete and
continuous ) structures are built.
- a set is a collection of objects.
an object is anything of interest, maybe itself a set.
- Definition 1.
A set is a collection of objects.
The objects is a set are called the elements or members of
the set.
If x is a memebr of a set S, we say S contains x.
notation: x eS vs x e S
- Ex: In 1,2,3,4,5, the collection of 1,3 5 is a set.
Introduction
Transparency No. 1-8
8
Set description
- How to describe a set:?
1. List all its member.
the set of all positive odd integer >10 = ?
The set all decimal digits = ?
the set of all upper case English letters = ?
The set of all nonnegative integers = ?
2. Set builder notation:
P(x) : a property (or a statement or a proposition) about
objects.
e.g., P(x) = x > 0 and x is odd
then {x | P(x) } is the set of objects satisfying property P.
P(3) is true => 3 e {x | P(x)}
P(2) is false => 2 e {x | P(x)}

Introduction
Transparency No. 1-9
9
Set predicates
Definition 2.
Two sets S1, S2 are equal iff they have the same elements
S1 = S2 iff x (x e S1 <=> x e S2)
Ex: {1,3,5} = {1,5,3} = {1,1,3,3, 5}
- Null set ={} = C =
def
the collection of no objects.
Def 3: [empty set] for-all x x e C.
Def 3. [subset]
A _ B iff all elements of A are elements of B.
A _ B <=> for-all x (x e A => x e B)).
- Def 3: A c B =
def
A _ B /\ A = B.
- Exercise : Show that: 1. For all set A (C _ A)
2. (A _ B /\ B _ A) <=> (A = B) 3. A _ C => A = C
Introduction
Transparency No. 1-10
10
Size or cardinality of a set
Def. 4
| A | = the size(cardinality) of A = # of distinct elements of A.
- Ex:
|{1,3,3,5}| = ?
|{}| = ?
| the set of binary digits } | = ?
|N| = ? ; |Z| = ? ; | {2i | i in N} = ?
|R| = ?
- Def. 5.
A set A is finite iff |A| is a natural number ; o/w it is infinite.
Two sets are of the same size (cardinality) iff there is a 1-1
& onto mapping between them.
Introduction
Transparency No. 1-11
11
countability of sets
- Exercise: Show that
1. |N| = |Z| = | Q | = {4,5,6,...}
2. |R| = | [0, 1) |
3. |N| = |R|
- Def.
A set A is said to be denumerable iff |A| = |N|.
A set is countable (or enumerable) iff either |A| = n for some
n in N or |A| = |N|.
- By exercise 3,
R is not countable.
Q and Z is countable.
Introduction
Transparency No. 1-12
12
The power set
Def 6.
If A is a set, then the collection of all subsets of A is also a
set, called the poser set of A and is denoted as P(A) or 2
A
.
- Ex:
P({0,1,2}) = ?
P({}) = ?
|P({1,2,..., n})| = ?
- Order of elements in a set are indistinguishable. But
sometimes we need to distinguish between (1,3,4)
and (3,4,1) --> ordered n-tuples
Introduction
Transparency No. 1-13
More about cardinality
Theorem: for any set A, |A| = |2
A
|.
Pf: (1) The case that A is finite is trivial since |2
A
| = 2
|A|
> |A|
and there is no bijection b/t two finite sets with different sizes.
(2) assume |A| = |2
A
|, i.e., there is a bijection f: A -> 2
A
.
Let D = {x in A | x e f(x) }. ==>
1. D is a subset of A; Hence
2. -y in A s.t. f(y) = D.
Problem: Is y e D ?
if yes (i.e., y e D) ==> y e f(y) = D, a contradiction
if no (i.e., y e D) ==> y e f(y) =D, a contradiction too.
So the assumption is false, i.e., there is no bijection b/t A and
2
A
.
Note: Many proofs of impossibility results about computations
used arguments similar to this.

Introduction
Transparency No. 1-14
14
Cartesian Products
Def. 7 [n-tuple]
If a1,a2,...,an (n > 0) are n objects, then (a1,a2,...,an) is a
new object, called an (ordered) n-tuple [ with a
i
as the ith
elements.
Any orderd 2-tuple is called a pair.
(a1,a2,...,am) = (b1,b2,...,bn) iff
m = n and for i = 1,..,n a
i
= b
i
.

Def. 8: [Cartesian product]
A x B =
def
{(a,b) | a in A /\ b in B }
A1 x A2 x ...x An =def {(a1,...,an) | ai in Ai }.

Ex: A = {1,2}, B = {a,b,c} , C = {0,1}
1. A x B = ? ; 2. B x A = ?
3. A x {} = ? ;4. A x B x C = ?

Introduction
Transparency No. 1-15
15
Set operations
- union, intersection, difference , complement,
- Definition.
1. A B = {x | x in A or x in B }
2. A B = {x | x in A and x in B }
3. A - B = {x | x in A but x not in B }
4. ~ A = U - A
5. If A B = {} => call A and B disjoint.



Introduction
Transparency No. 1-16
16
Set identites
- Identity laws: A ? ? = A
- Domination law: U ? ? = U; {} ?? = {}
- Idempotent law: A ? A = A ;
- complementation: ~~A = A
- commutative : A ? B = B ? A
- Associative: A ? (B ? C) = (A ? B ) ? C
- Distributive: A ? (B ? C) = ?
- DeMoregan laws: ~(A ? B) = ~A ? ~B

Note: Any set of objects satisfying all the above laws is
called a Boolean algebra.
Introduction
Transparency No. 1-17
17
Prove set equality
1. Show that ~(A B) = ~A ~B by show that
1. ~(A B) _ ~A ~B
2. ~A ~B _ ~(A B)
- pf: (By definition) Let x be any element in ~(A B) ...

2. show (1) by using set builder and logical equivalence.

3. Show distributive law by using membership table.

4. show ~(A (B C)) = (~C ~B) ~A by set identities.


Introduction
Transparency No. 1-18
18
Functions
- Def. 1 [functions] A, B: two sets
1. a function f from A to B is a set of pairs (x, y) in AxB s.t., for
each x in A there is at most one y in B s.t. (x,y) in f.
2. if (x,y) in f, we write f(x) = y.
3. f :A ->B means f is a function from A to B.
Def. 2. If f:A -> B ==>
1. A: the domain of f; B: the codomain of f
if f(a)=b =>
2. b is the image of a; 3. a is the preimage of b
4. range(f) = {y | -x s.t. f(x) = y} = f(A).
5. preimage(f) = {x | $ y s.t. f(x) = y } = f
-1
(B).
6. f is total iff f
-1
(B) = A.

Introduction
Transparency No. 1-19
19
Types of functions
- Def 4.
f: A x B; S: a subset of A,
T: a subset of B
1. f(S) =
def
{y | - x in S s.t. f(x) = y }
2. f
-1
(T) =
def
{x | - y in T s.t. f(x) = y }

Def. [1-1, onto, injection, surjection, bijection]
f: A -> B.
f is 1-1 (an injection) iff f(x)=(fy) => x = y.
f is onto (surjective, a surjection) iff f(A) = B
f is 1-1 & onto <=> f is bijective (a bijection, 1-1
correspondence)


Introduction
Transparency No. 1-20
Relations
- A, B: two sets
AxB (Cartesian Product of A and B) is the set of all ordered
pairs {<a,b> | a e A and b e B }.
Examples:
A= {1,2,3}, B= {4,5,6} => AxB = ?

- A1,A2,...,An (n > 0): n sets
A1xA2x...xAn = {<a1,a2,...,an> | ai e Ai }.
Example:
1. A1={1,2},A2={a,b},A3={x,y} ==> |A1xA2xA3| = ?
2. A1= {}, A2={a,b} => A1xA2 = ?

Introduction
Transparency No. 1-21
Binary relations
- Binary relation:
A,B: two sets
A binary relation R between A and B is any subset of AxB.
Example:
If A={1,2,3}, B ={4,5,6}, then which of the following is a
binary relation between A and B ?
R1 = {<1,4>, <1,5>, <2,6> }
R2 = {}
R3 = {1,2,3,4}
R4 = {<1,2>, <3,4>, <5,6> }
Introduction
Transparency No. 1-22
Terminology about binary relations
- R: a binary relation between A and B (I.e., a subset
of AxB), then
The domain of R:
dom(R) = {x e A | - y e B s.t. <x,y> e R}
The range of R:
range(R) ={y e B, | - x e A, s.t., <x,y> e R}
<x,y> e R is usually written as x R y.
- If A = B, then R is simply called a relation over(on)
A.
- An n-tuple relation R among A1,A2,...,An is any
subset of A1xA2...xAn, n is called the arity of R
- If A1=A2=...=An=A => R is called an n-tuple relation
(on A),.
Introduction
Transparency No. 1-23
Operations on relations (and functions)
- R _ AxB; S _ B x C: two relations
- composition of R and S:
R S = {<a,c> | there is b in B s.t., <a,b> in R and <b,c> in
S }.
- Identity relation: I
A
= {<a,a> | a in A }
- Converse relation: R
-1
= {<b,a> | <a,b> in R }
- f:A -> B; g: B->C: two functions, then
gf:A->C defined by gf(x) = g(f(x)).
- Note: function and relation compositions are
associative, I.e., for any function or relation f,g,h,
f (gh) = (fg) h
Introduction
Transparency No. 1-24
Properties of binary relations
- R: A binary relation on S,
1. R is reflexive iff for all x in S, x R x.
2. R is irreflexive iff for all x in S, not x R x.
3. R is symmetric iff for all x, y in S, xRy => yRx.
4. R is asymmetric iff for all x,y in S, xRy => not yRx.
5. R is antisymmetric iff for all x,y in S, xRy and yRx => x=y.
6. R is transitive iff for all x,y,z in S, xRy and yRz => xRz.

Graph realization of a binary relation and its properties.

x x
y y
s s
rule: if xRy then draw an
arc from x on left S to y
on right S.
Introduction
Transparency No. 1-25
Examples
- The relation s on the set of natural numbers N.
What properties does s satisfy ?
ref. irref, or neither ?
symmetric, asymmetric or antisymmetric ?
transitive ?
- The relation > on the set of natural numbers N.
- The divide | relation on integers N ?
x | y iff x divides y. (eg. 2 | 10, but not 3 | 10)
What properties do > and | satisfy ?
- The BROTHER relation on males (or on all people)
(x,y) e BROTHER iff x is ys brother.
- The ANCESTOR relation on a family.
(x,y) e ANCESTOR if x is an ancestor of y.
What properties does BROTHER(ANCESTOR) have?
Introduction
Transparency No. 1-26
Properties of relations
- R: a binary relation on S
1. R is a preorder iff it is ref. and trans.
2. R is a partial order (p.o.) iff R is ref.,trans. and antisym.
(usually written as s ).
3. R is a strict portial order (s.p.o) iff it is irref. and transitive.
usually written <.
4. R is a total (or linear) order iff it is a partial order and every
two element are comparable (i.e., for all x,y either xRy or
yRx.)
5. R is an equivalence relation iff it is ref. sym. and trans.
- If R is a preorder (resp. po or spo) then (S,R) is called a
preorder set (resp. poset, strict poset).
- What order set do (N, <) , (N, s ) and (N, |) belong to ?

Introduction
Transparency No. 1-27
Properties of ordered set
- (S, s): a poset, X: a subset of S.
1. b in X is the least (or called minimum) element of X iff b s x for
all x in X.
2. b in X is the greatest (or called maxmum or largest) element of
X iff X s b for all x in X.
- Least element and greatest element, if existing, is unigue for
any subset X of a poset (S, s )
pf: let x, y be least elements of X.
Then, xs y and ys x. So by antisym. of s, x = y.
3. X ia a chain iff (X,R) is a linear order(, i.e., for all x, y in X,
either xsy or ysx) .
4. b in S is a lower bound (resp., upper bound) of X iff
b s x (resp., x s b) for all x in X.
Note: b may or may not belong to X.


Introduction
Transparency No. 1-28
Properties of oredered sets
- (S, s) : a poset, X: a nonempty subset of S.
5. b in X is minimal in X iff there is no element less
than it.
i.e., there is no x in X, s.t., (x < b),
or for all x, x s b => x =b.
6. b in X is a maximal element of X iff there is no
element greater then it.
i.e., there is no x in X, s.t., (b < x),
or for all x, b s x => x=b.
- Note:
1.Every maximum element is maximal, but not the
converse in general.
2. Maximal and minimal are not unique in general.
Introduction
Transparency No. 1-29
well-founded set and minimum conditions
- (S,s) : a poset ().
1. s is said to be well-founded () iff there is no
infinite descending sequence. (i.e., there is no infinite
sequence x1,x2,x3,.... s.t., x1 > x2 > x3 >... ).
Note: x > y means y < x (i.e., ys x and y = x)
if s is well-founded => (S,s) is called a well-founded set.
2. (S,s) is said to satisfy the minimal condition iff every
nonempty subset of S has a minimal element.
- (S, s ): a total ordered set ().
3. s is said to be a well-ordering() iff every
nonempty subset of S has a least element.
If s is well ordered, then (S,s) is called a well-ordered set.

Introduction
Transparency No. 1-30
Examples of ordered sets
- Among the relations (N,s ), (N,> ), (N, |), (Z, s), (Z,>),
(Z,|) and (R, s),
1. Which are well-founded ?
2. Which are well-ordered ?

Introduction
Transparency No. 1-31
Equivalence of well-foundness and minimal
condition
- (S,s) is well-founded (w.f.) iff it satisfies the
minimum conditions (m.c.).
pf: scheme: (1) not w.f => not m.c. (2) not m.c. => not
w.f.
(1) Let x1,x2,... be any infinite sequence s.t. x1 > x2 > x3 >... .
Now let X={x1,x2,...}. Then X has no minimal element.
So, S does not satisfy m.c.
(2) Let X be any nonempty subset of S w/o minimal elements. Now
(*) chose arbitrarily an element a1 from X,
let X1 = {x | x \in X1 and a1 > x } (i.e. the set of elements in X < a1 )
since a1 is not minimal, X1 is nonempty and has no minimal element, too.
So we can repeat the procedure (*) infinitely to find a2, X2, a3, x3,... and obtain
the infinite ascending sequence a1 > a2 > a3 > ... So S is not w.f.

Introduction
Transparency No. 1-32
Variants of Inductions
- Mathematical Induction:
To prove a property P(n) holds for all natural number n e N,
it suffices to show that
(1) P(0) holds --- (base step) and
(2) For all n e N, p(n) => p(n+1) --- (induction step)
P(n) in (2) is called induction hypothesis (h.p.)

P(0), n (P(n) => P(n+1))
-------------------------------------------MI1
n P(n)

P(0), n ( (P(0)/\...p(n-1)) => P(n) )
-------------------------------------------------MI2
n P(n)
Introduction
Transparency No. 1-33
Well-order Induction
- Well-order induction:
(S,s ) a well-ordered set; P(x): a property about S.
To show that P(x) holds for all xeS, it suffices to show
(1) P(x
min
) holds where x
min
is the least element of S. --- (base step)
(2) for all xeS, if (for all yeS y < x => P(y)) => p(x) ---(ind. step)

(1) is a special case of (2) [i.e., (2) implies (1)]
(for all y in S y < x => P(y)) in (2) is called the ind. hyp. of (2).

- P(X
min
), y [ ( x x< y =>P(x) ) => P(y)
--------------------------------------------------------------- WI
x P(x)
Introduction
Transparency No. 1-34
Variants of inductions
- Well-founded induction (WI ):
(S, s) a well-founded set. P(x) a property about S.
WI says that to prove that P(x) holds for all x in S, it
suffices to show that
(1) P(x) holds for all minimal elements x in S --- base step, and
(2) for all y in S, (for all z in S z < y => P(z)) => p(y) ---ind. step
(1) has already been implied by (2)
(for all z in S z < y => P(z)) in (2) is the ind. hyp. of the proof.

forall minimal x, P(x), y [ (z, z<y =>P(x) ) => P(y) ]
-------------------------------------------------------------------------- WI
x P(x)
- Facts: w.f. Ind. => well-ordered ind. => math ind.
(I.e., If w.f ind. is true, then so is well-ordered ind. and
if well-ordered ind. is true , then so is math. ind.)
Introduction
Transparency No. 1-35
Correctness of WI
- (S,s) : a well-founded set. P(x) : a property about S.
Then P(x) holds for all x e S, if
(1) P(x) holds for all minimal elements x e S --- base step, and
(2) for all y e S, (for all z e S z < y => P(z)) => p(y) ---ind. Step
pf: Suppose WI is incorrect. Then there must exist (S,s) satisfying (1)(2) but
the set NP = { x | x e S and P(x) is not true } is not empty. (*)
==> Let xm be any minimal element of NP.
case (1): xm is minimal in S. --> impossible! (violating (1) )
since if xm is minimal in S, by (1), P(xm) holds and xm e NP.
case (2): xm is not minimal in S. --> still impossible!
xm not minimal in S ==> L = {y | y e S /\ y < xm } is not empty.
==> L NP = { } (o/w x would not be minimal in NP.)
==> (ind. hyp. holds for xm , i.e., for all z e S, z < xm => p(z) is true )
==> (by (2).) p(x) holds ==> x e NP.
case(1) and (2) imply NP has no minimal element and hence is empty,
which contradicts with (*). Hence the assumption that WI is incorrect is
wrong.

Introduction
Transparency No. 1-36
Definition by induction (or recursion)
- Consider the following ways of defining a set.
1. the set of even numbers Even = {0,2,4,...}:
Initial rule : 0e Even.
closure rule: if x e Even then x +2 e Even.
2. The set of strings E
+
over an alphabets E = {a,b,c,...,z}
Initial: if x in E, then x in E
+
.
closure: If x in E and o in E
+
, then xo in E
+
.
3. The set of lists of numbers.
Initial: [ ] is a list,
closure: If x is number and L is a list, then [x | L] is a list.
[x | L] is the result of inserting x into the head position of L.
e.g., [ 5 | [2,3,4]] = [5,2,3,4]
- Problem:All definitions well-defined? Whats wrong?
Introduction
Transparency No. 1-37
Problems about recursive definition
- The above definitions are incomplete in that there
are multiple sets satisfy each definition
- Example:
Let Ni = {0,2,4,6,...} U { 2i+1, 2i+3, ...}.
Then {0,2,4,6,...} and N
i
(i > 0) all satisfy Def. 1.
- Among {0,2,4,6,...} and N
i
(i > 0) , which one is our
intended set ?
- How to overcome the incompleteness ?
- Relationship between {0,2,4,...} and the collection
of sets satisfying the definitions?
{0,2,4,...} is the least set among all sets.
{0,2,4,...} is equal to the intersection of all sets.
Every other set contains element which is not grounded
in the sense that it has no proof (or derivation).
Introduction
Transparency No. 1-38
General form of inductively defining a set (or domain)
- O : a set, Init: a subset of O
F: a set of functions on O,
- we define a subset A of O as follows:
1. Initialization: Every element of Init is an element of A.
(or simply Init _ D)
2. closure: If f:O
n
->O in F and t
1
,...,t
n
are members of A,
then so are f(t
1
,...,t
n
)
3. plus one of the following 3 phrases.
3.1 A is the least subset of W with the above two properties.
3.2 A is the intersection of all subsets of W with property
1,2.
3.3 Only elements obtainable by a finite number of
applications of rules 1 and 2 are elements of A.
- Note: Although phrase 3. is necessary, it is usually replaced by an adv.
inductively or recursively before define, and sometimes even
totally omitted if it is understood in mind.
Introduction
Transparency No. 1-39
Define functions on recursively defined domains
- Given a set E, recall that the set E
+
is defined as follows:
initial rules: d eE
+
for all d eE. (i.e. E c E
+
)
closure rules: if xeE and de E then dx e E
+
. I.e.,F={f
d
: x dx | deE }
- Let aeE and consider the following function:
#a : E
+
N with #a(x) = number of as in string x.
- We can now define #a as follows:
Initial: specify the value #a(x) of x for each x in Init = E.
==> #a(x) = 1 if x = a ; #a(x) = 0 if x = a.
closure: specify the value #a(f(t
1
,...,t
n
)) of element f(t
1
,...,t
n
) for each f in
F and t
1
,...,t
n
in A = E
+
.
==> for any z in E and y in E
+
:
#a(zy) = 1 + #a(y) if z = a and
#a(zy) = #a(y) if z = a.
- Such kind of definitions are well defined. why ?
There is exactly one way to form each element of the domain.

Introduction
Transparency No. 1-40
Structural induction
- A: an inductively defined domain
P(x): a property on A.
- To show that P(x) holds for all x in A, it suffices to show
Base step: P(x) holds for all x in Init.
Ind. step: P(t
1
),...,P(t
n
) => P(f(t
1
,...,t
n
)) for all f in F,
and for all t
1
,...,t
n
in A.
- Example: show P(x) #a(x) > 0 holds for all x.
Base step: x e Init = (E = {a,b,c,...})
x = a => #a(x) = 1 > 0.
x = a => #a(x) = 0 >0
Ind. step: x = zy where z is any element in E and y is any element in
E
+
.
By ind. hyp. #a(y) > 0. hence
if z = a => #a(z y) = 1 + #a(y) >0
if z = a => #a(z y) = #a(y) > 0.
Introduction
Transparency No. 1-41
More example:
- Define the set of labeled binary trees as follows:
- E: a set of labels = {a,b,c,..}
- I = E U {(, )}, I* = the set of strings over I.
- T
E
is a subset of I* defined inductively as follows:
Init: () is a tree.
closure: if x is a label, and L and R are trees,
then (x L R) is a tree.
- Example / counter example:
(), (a ()()), ((a) (b) ()) .
- For each tree T, let lf(T) = # of ( and lb(T) =# of
labels in T; e(T) = number of empty subtrees (),
which can be defined as follows:
Init: lf(()) = 1; lb(()) = 0; e(()) = 1.
closure: lf( (x LR) ) = 1+ lf(L) + lf(R) ; lb( (x L R) ) = 1 + lb(L)
+lb(R) ; e( (x L R) ) = e(L) + e(R).
Introduction
Transparency No. 1-42
More example(contd)
- Use structural ind. to prove properties of trees.
- Show that for all tree T in T
E
: P(T) =
def
lf(T) = lb(T) + e(T)
holds for all tree T.
Base step[ T = () ] : lf(()) = 1, lb(())=0, e(())=1. OK.
ind. step[ T= (x L R) where x: any label, L, R: any trees] :
assume (ind.hyp.:) lf(L) = lb(L) + e(L) and
lf(R) = lb(R) + e(R ), then
lf( (x L R) ) = 1 + lf(L) + lf(R) = 1 +lb(L) +lb(R) + e(L) +e(R)
e( (x L R) ) = e(L) +e(R)
lb( (x L R) ) =1 + lb(L) + lb(R)
==> lf((X L R)) = lb((X L R)) + e((X L R)).
Introduction
Transparency No. 1-43
2. Basics of formal languages
What is a language ?









The meaning triangle:

minds
language
External
world
refers to
stand for
symbolize
Introduction
Transparency No. 1-44
Different levels of language analysis
- phonetic and phonological analysis()
determine how words are related to sounds that realize them;
required for speech understanding.
Phonetics concerns itself with the production, transmission, and
perception of the physical phenomena(phones) which are
abstracted in the mind to constitute these speech sounds or
signs.
Phonology concerns itself with systems of phonemes (),
abstract cognitive units of speech sound or sign which
distinguish the words of a language.
Ex: k in 'kill' and 'skill' are two phones [k],[g] but same phoneme
/k/; book() books ()
- morphological analysis: (;)
determine how words are formed from more basic meaning
units called "morphemes". ( )
morpheme: primitive unit of meaning in a language.
eg: friendly = friend + ly; luckily = lucky + ly
Introduction
Transparency No. 1-45
Levels of language analysis
- syntax analysis: ()
determine how words can be put together to form correct
sentences.
determine what structure role each word plays in the sentence.
determine what phrases are subparts of what other parts.
ex: John saw his friend with a telescope
=> S[ NP[ noun:'John' ] // one more result not listed!
VP[ verb: 'saw',
NP[ NP[ possessivePronoun:'his', noun: 'friend'] ]
PP[ prep: 'with', NP [ art: 'a' noun:'telescope]]]]
- Semantics analysis : ()
determine what words mean and how these meanings combine
in sentence to form sentence meanings. context independent.
Possible analysis result of the previous example:
person(j), person(f), name(j,'John'), time(t), friend(f,j) //?
see(j, f, t), before(t, now), possess(f, te, t).
Introduction
Transparency No. 1-46
Levels of language analysis
- Pragmatic analysis: ()
studies the ways in which context contributes to meaning
concern how sentences are used in different situation and how
use affects the interpretation of sentences.
ex: Would you mind opening the door?
John saw his friend with a telescope .
- Discourse analysis () ,...

Ex: Wang has a friend. John saw him (Wang or Wang's friend?)
with a telescope yesterday.
- World knowledge,...
- Languages (including natural and programming languages)
contains many facets, each an active research domain of AI,
linguistics, psychology, philosophy, cognitive science and
mathematics.

Introduction
Transparency No. 1-47
What are formal languages
- In the study of formal languages we care about only the
well-formedness/membership, but not the meaning of
sentences in a language.
Ex1: Our usual decimal language of positive numbers ?
Problem: Which of the following are well-formed
[representation of] numbers:
(1) 128 (2) 0023 (3) 44ac (4) 3327
Let L be the set of all well-formed [representations of ]
numbers. ==> 123, 3327 in L but 0023, 44ac not in L.
So according to the view of FL, The usual decimal language
of positive numbers (i.e., L) is just the set :
{ x | x is a finite sequence of digits w/t leading zeros }.
Note: FL don't care about that string '134' corresponds to the (abstract)
positive number whose binary representation is 10000000 Its the job
of semantics.

Introduction
Transparency No. 1-48
Definition 2.1
- An alphabet E (or vocabulary; ) is a finite set.
Ex: decimal_alphabet = {0,1,2,3,4,5,6,7,8,9}
binary_digit = {0,1}; Hexidecimal-alphabet = {0,..,9,A,..,F}
alphabet-of-English-sentences = {a, word, good, luckily,...}
alphabet-of-English-words = {a,...,z,A,...,Z}
- Elements of an alphabet are called letters or symbols
- A string (or word or sentence) over E is a finite sequence of
elements of E.
Ex: if E = {a,b} then 'aabaa' is a string over E of length 5.
Note: A string x = x
0
x
1
x
n-1
of length n is in fact viewed as a function
x: [0..n) E such that x(k) = x
k
for k in [0,n).
- The length of a string x, denoted |x|, is the number of symbols
in x. ex: |abbaa| = 5.
- there is a unique string of length 0, called the null string or
empty string, and is denoted by c (or )
Introduction
Transparency No. 1-49
Definition 2.1 (cont'd)
- E* =
def
the set of all strings over E.
Ex: {a,b}* = {c,a,b,aa,ab,ba,bb,aaa,...}
{a}* = {c,a,aa,aaa,aaaa,...} = {a
n
| n > 0}.
{}* = ? ( {} or {c} or c ?)
- Note the difference b/t sets and strings:
{a,b} = {b,a} but ab = ba.
{a,a,b} = {a,b} but aab = ab
- So what's a (formal) language ?
- A language over E is a set of strings over E (i.e., a
subset of E*). Ex: let E = {0,...,9} then all the followings
are languages over E.
1. {c} 2. {} 3. {0,...,9} = E 4. {x | x e E* and has no leading
0s} 5. E
5
= {x | |x| = 5} 6. E* = {x | |x| is finite }
Introduction
Transparency No. 1-50
Examples of practical formal languages
Ex: Let A be the set of all ASCII codes.
a C program is simply a finite string over A satisfying all
syntax rules of C.
C-language =
def
{ x | x is a well-formed C program over A }.
PASCAL-language = {x | x is a well-formed PASCAL
program over A }.
Similarly, let ENG-DIC = The set of all English lexicons
= { John, Mary, is, are, a, an, good, bad, boys, girl,..}
an English sentence is simply a string over ENG-DIC
==> English =
def
{x | x is a legal English sentence over END-
DIC} ==>
1.John is a good boy . e English.
2. |John is a good boy . | = ?

Introduction
Transparency No. 1-51
issues about formal languages
- Why need formal languages?
for specification (specifying programs, meanings etc.)
i.e., basic tools for communications b/t people and
machines.
although FL does not provide all needed theoretical
framework for subsequent (semantic processing...)
processing, it indeed provides a necessary start, w/t which
subsequent processing would be impossible -- first level of
abstraction.
Many basic problems [about computation] can be
investigated at this level.
- How to specify(or represent) a language ?
Notes: All useful natural and programming languages
contains infinite number of strings (or programs and
sentences)

Introduction
Transparency No. 1-52
How to specify a language
principles: 1. must be precise and no ambiguity among
users of the language: 2. efficient for machine processing
tools:
1. traditional mathematical notations:
A = {x | |x| < 3 and x e {a,b}} = {e,a,b,aa,ab,ba,bb}
problem: in general not machine understandable.
2. via programs (or machines) :
P: a program; L(P) =
def
{x | P return 'ok' on input string x}
precise, no ambiguity, machine understandable.
hard to understand for human users !!
3. via grammars: (easy for human to understand)
Ex: noun := book | boy | jirl | John | Mary
art := a | an | the ; prep := on | under | of | ...
adj := good | bad | smart | ...
NP := noun | art noun | NP PP | ...
PP := prep NP ==> 'the man on the bridge' e PP.
Introduction
Transparency No. 1-53
Non-enumerability of languages
- Recall that a set is denumerable if it is countably
infinite. (i.e., A set T is denumerable if there is a 1-1
and onto mapping b/t T and {0,1,...})
- Exercises: If E is finite and nonempty, then
1. E* is denumerable (i.e., |E*| = |N| )
2. 2
E*
(ie., the set of all languages over E) is uncountable.
pf: Since |2
E*
| = |E*| = |N|, hence |2
E*
| is not countable

Introduction
Transparency No. 1-54
Operations on strings
- string concatenations:
x,y: two strings ==> xy is a new string with y appended to
the tail of x. i.e., xy is the function :
z : [0, len(x)+len(y) ) E such that
z(n) = x(n) for 0 s n < len(x) and
z(len(x)+n) = y(n) for 0 s n < len(y).
Some properties of :
1. ASSOC: (xy)z = x(yz) ; 2. Identity: cx = xc = x.
3. |xy| = |x| + |y|.
- conventions and abbreviations:
E: for alphabet ; a,b,c: for symbols;
x,y,z: for strings; A,B,C: for languages;
a
5
for aaaaa; a
1
= a ; a
0
= c.
#a(x) =
def
number of a's in x. ==> #a(aabbcca) = 3.
Introduction
Transparency No. 1-55
Operations on languages (i.e, string sets)
1. usual set operations:
Union: A U B = {x | x e A or x e B }
Ex: {a,ab} U { ab, aab} = {a,ab,aab}
intersection: A B = {x | x e A and x e B }
complements in E*: ~A =
def
E* - A = { x | x not e A}
ex: ~{x | |x| is even } = {x | |x| is odd }.
2. Set concatenations:
AB =
def
{xy | x e A and y e B }.
Ex: {b,ba} {a,ab} = {ba,bab,baa,baab}.

3. Powers of A: A
n
( n > 0) is defined inductively:
1. A
0
= { c}; A
n+1
= AA
n
= AA...A. ----- n A's
Introduction
Transparency No. 1-56
Operations on languages (cont'd)
Ex: Let A = {ab,abb}. Then
1. A
0
= ? 2. A
1
= ? 3. A
2
= ? 4. |A
4
|=?
5. Hence {a,b,c}
n
= {x e {a,b,c}* | |x| = n } and
A
n
= { x
1
x
2
...x
n
| x
1
,...,x
n
e A }
5. Asterate (or star) A* of A is the union of all finite
powers of A:
A* =
def
U
k > 0
A
K
= A
0
U A UA
2
U A
3
U ...
= {x
1
x
2
...x
n
| n > 0 and x
i
e A for 1 > i > n }
notes:
1. n can be 0 ==> c e A*. ==> c e {}*.
2. If A = E ==> A* = E* = the set of all finite strings
over E.
Introduction
Transparency No. 1-57
Properties of languages operations
6. A
+
=
def
the set of all nonzero powers of A
=
def
U
k \ge 1
A
k
= A U A
2
U A
3
U ... = A A*.
Properties of languages operations
1. associative: U, , :
AU(BUC) = (AUB)UC; A(BC) = (AB)C;
A(BC) = (AB)C
2. commutative : U,:
3. Identities:
1. A U {} = {}UA = A; 2. A E* = E* A = A;
3. {c}A = A{c} = A.
4. Annihilator: A{} = {}A = {}.

Introduction
Transparency No. 1-58
Properties of languages operations (cont'd)
5. Distribution laws:
AU(BC) = (AUB) (AUC) ; A(BUC) = (AB)U(AC)
A(BUC) = AB U AC ; A(BC) = AB AC (x)
Ex: Let A = {a,ab}, B = {b}, C = {c}
==> A(B C) = ? AB = ? AC = ?
==> A(BC) AB AC.
Exercise: show that A(BUC) = AB UAC.
6. De Morgan Laws: ~(AUB) = ? ~(AB) = ?
7. Properties about A*:
1. A*A* = A* ; 2. A** = A*; 3. A* = {c}UAA*
4. AA* = A*A = A
+
. 5. {}* = {c}.
Exercises: Prove 1~5. (hint: direct from the definition of A*)
Introduction
Transparency No. 1-59
A language for specifying languages
- In the term: 'a language for specifying languages',
the former language is called a metalanguage while
the later languages are called target languages.
So in the C language reference manual, the BNF form is a
meta language and C itself is the target language.
- E: an alphabet ; A = E U { +, *, e, C, , ), ( };
- E = A U {~, , }
- 1. The set of all regular expressions is a subset of A*
which can be defined inductively as follows:
Basis: 1. e, C are regular expressions
2. Every symbol a in E is a regular expression.
Induction: If o and | are regular expressions then so are
(o+|), (o|), o*.
Introduction
Transparency No. 1-60
Regular expressions
Examples:
legal reg. expr. : e, (a+b)*, ((a +(bc))+(eb)*)
illegal reg. expr: (ab), a + b, ((a + E)) + d, where d E.
illegal formally but legal if treated as abbreviations:
ab --> (ab) ; a+b --> (a+b);
a + bc* --> (a + (bc*))
- Extended regular expressions (EREGs):
- EREGs are strings over E and can be defined
inductively as follows:
Basis: 1. e, C are EREGs
2. Every symbol a in E is an EREG.
Induction: If o and | are EREGs then so are
(o+|), (o|), o*, (~o), (o|), (o-|)
Introduction
Transparency No. 1-61
Languages represented by regular expressions
- [Extended] regular expressions provides a finite way
to specify infinite languages.
- Definition: for each EREG (and hence also REG) o,
the language (over E) specified (or denoted or
represented) by o, written L(o), is defined inductively
as follows:
Basis: L(e) = {c}; L(C) = {};
for each a E, L(a) = {a}.
Induction: assume L(o) and L(|) have been defined for
EREG o and |. Then
L(o+|) = L(o) U L(|); L(o|) = L(o) L(|); L(o*) = L(o)*;
L(~o) = E* - L(o); L(o - |) = L(o) - L(|); L(o |) = L(o) L(|).
- Definition: a language A is said to be regular if A = L(o) for
some regular expression o.
Introduction
Transparency No. 1-62
Examples:
- Let E = {a,b}. Then
L( a(a+b)*) = {x | x begins with a } = {a,aa,ab,aaa,aab,aba,...}
L(~(a(a+b)*)) = {x | x does not begin with a}
= {x | x begins with b } U {c} = L( e + b(a+b)*).
- Regular expressions and Extended regular
expressions give us finite ways to specify infinite
languages. But the following questions need to be
answered before we can be satisfied with such tools.
1. Are EREG or REGs already adequate ?
(i.e, For every A E*, there is an expression o s.t., L(o) =
A ? ) ==> ans: _____.
2. For every expression o, is there any [fast] machine that
can determine if x L(o) for any input string x ?
Ans: _______
Introduction
Transparency No. 1-63
IS EREG more expressive than REG ?
- L1, L2: two [meta] languages;
we say L1 is at least as expressive as L2 if L(L2) =
def
{A |
there is an expression a in L2 s.t. A = L(a) } is a subset of
L(L1).
L1 is said to be equivalent to L2 in expressive power iff
both are at least as expressive as the other.
- Problem:
EREG is at least as expressive as REG since L(REG) is a
subset of L(EREG) (why?)
But does the converse hold ? (i.e, Is it true that for each
EREG o there is a REG | s.t., L(o) = L(|) ?
ans: _____.

You might also like