Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and...
Transcript of Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and...
![Page 1: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/1.jpg)
Formal Languages and Automata
5 lectures for
2016-17 Computer Science Tripos
Part IA Discrete Mathematics
by Ian Leslie
c© 2014,2015 AM Pitts; 2016,2017 IM Leslie (minor tweaks)
![Page 2: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/2.jpg)
What is this course about?
◮ Examining the power of an abstract machine
What can this box of tricks do?
![Page 3: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/3.jpg)
What is this course about?
◮ Examining the power of an abstract machine
◮ Domains of discourse: automata and formal languages
Automaton is the box of tricks, language recognition iswhat it can do.
![Page 4: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/4.jpg)
What is this course about?
◮ Examining the power of an abstract machine
◮ Domains of discourse: automata and formal languages
◮ Formalisms to describe languages and automata
Very useful for future courses.
![Page 5: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/5.jpg)
What is this course about?
◮ Examining the power of an abstract machine
◮ Domains of discourse: automata and formal languages
◮ Formalisms to describe languages and automata
◮ Proving a particular case: relationship between regularlanguages and finite automata
Perhaps the simplest result about power of a machine.Finite Automata are simply a formalisation of finite statemachines you looked at in Digital Electronics.
![Page 6: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/6.jpg)
A word about formalisms to describelanguages
◮ Classically (i.e. when I was young) this would be doneusing production-based grammars.
e.g. S → NVe.g. I → ID, I → D, I → −D
![Page 7: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/7.jpg)
A word about formalisms to describelanguages
◮ Classically (i.e. when I was young) this would be doneusing production-based grammars.
◮ Here will we use rule induction
Excuse to introduce rule induction now, useful in otherthings
![Page 8: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/8.jpg)
Syllabus for this part of the course
◮ Inductive definitions using rulesand proofs by rule induction.
◮ Regular expressions and pattern matching.
◮ Finite automata and regular languages:Kleene’s theorem.
◮ The Pumping Lemma.
mathematics needed for computer science
![Page 9: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/9.jpg)
Common theme: mathematical techniques for definingformal languages and reasoning about their properties.
Key concepts: inductive definitions, automata
Relevant to:
Part IB Compiler Construction, Computation Theory, ComplexityTheory, Semantics of Programming Languages
Part II Natural Language Processing, Optimising Compilers,Denotational Semantics, Temporal Logic and ModelChecking
N.B. we do not cover the important topic of context-free grammars, which prior to 2013/14 was
part of the CST IA course Regular Languages and Finite Automata that has been subsumed into
this course.
see course web page for relevant Tripos questions
![Page 10: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/10.jpg)
Formal Languages
![Page 11: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/11.jpg)
Alphabets
An alphabet is specified by giving a finite set, Σ, whoseelements are called symbols. For us, any set qualifies as apossible alphabet, so long as it is finite.
Examples:
◮ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, 10-element set of decimal digits.
◮ {a, b, c, . . . , x, y, z}, 26-element set of lower-case characters ofthe English language.
◮ {S | S ⊆ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}}, 210-element set of allsubsets of the alphabet of decimal digits.
Non-example:
◮ N = {0, 1, 2, 3, . . . }, set of all non-negative whole numbers isnot an alphabet, because it is infinite.
![Page 12: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/12.jpg)
Strings over an alphabet
A string of length n (for n = 0, 1, 2, . . .) over analphabet Σ is just an ordered n-tuple of elements of Σ,written without punctuation.
Σ∗ denotes set of all strings over Σ of any finite length.
Examples:
◮ If Σ = {a, b, c}, then ε,
notation for thestring of length 0
a, ab, aac, and bbac arestrings over Σ of lengths zero, one, two, three and fourrespectively.
◮ If Σ = {a}, then Σ∗ contains ε, a, aa, aaa, aaaa,
etc.
In general, an denotes the string of length n just containing a symbols
![Page 13: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/13.jpg)
Strings over an alphabet
A string of length n (for n = 0, 1, 2, . . .) over analphabet Σ is just an ordered n-tuple of elements of Σ,written without punctuation.
Σ∗ denotes set of all strings over Σ of any finite length.
Examples:
◮ If Σ = {a, b, c}, then ε, a, ab, aac, and bbac arestrings over Σ of lengths zero, one, two, three and fourrespectively.
◮ If Σ = {a}, then Σ∗ contains ε, a, aa, aaa, aaaa,
etc.
◮ If Σ = ∅ (the empty set), then what is Σ∗?
![Page 14: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/14.jpg)
Strings over an alphabet
A string of length n (for n = 0, 1, 2, . . .) over analphabet Σ is just an ordered n-tuple of elements of Σ,written without punctuation.
Σ∗ denotes set of all strings over Σ of any finite length.
Examples:
◮ If Σ = {a, b, c}, then ε, a, ab, aac, and bbac arestrings over Σ of lengths zero, one, two, three and fourrespectively.
◮ If Σ = {a}, then Σ∗ contains ε, a, aa, aaa, aaaa,
etc.
◮ If Σ = ∅ (the empty set), then Σ∗ = {ε}.
![Page 15: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/15.jpg)
Concatenation of strings
The concatenation of two strings u and v is the string uvobtained by joining the strings end-to-end. This generalisesto the concatenation of three or more strings.
Examples:
If Σ = {a, b, c, . . . , z} and u, v, w ∈ Σ∗ are u = ab, v = ra and
w = cad, then
vu = raab
uu = abab
wv = cadra
uvwuv = abracadabra
![Page 16: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/16.jpg)
Concatenation of strings
The concatenation of two strings u and v is the string uvobtained by joining the strings end-to-end. This generalisesto the concatenation of three or more strings.
Examples:
If Σ = {a, b, c, . . . , z} and u, v, w ∈ Σ∗ are u = ab, v = ra and
w = cad, then
vu = raab
uu = abab
wv = cadra
uvwuv = abracadabra
N.B. (uv)w = uvw = u(vw) ( any u,v,w )uǫ = u =ǫu
The length of a string u ∈ Σ∗ is denoted |u|.
![Page 17: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/17.jpg)
Formal languages
An extensional view of what constitutes a formal language is that it is
completely determined by the set of ‘words in the dictionary’:
Given an alphabet Σ, we call any subset of Σ∗ a (formal)
language over the alphabet Σ.
We will use inductive definitions to describe languages in terms of
grammatical rules for generating subsets of Σ∗.
![Page 18: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/18.jpg)
Inductive Definitions
![Page 19: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/19.jpg)
Axioms and rules
for inductively defining a subset of a given set U
◮ axiomsa
are specified by giving an element a of U
◮ rulesh1 h2 · · · hn
c
are specified by giving a finite subset {h1, h2, . . . , hn} of U (the
hypotheses of the rule) and an element c of U (the conclusion
of the rule)
![Page 20: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/20.jpg)
Axioms and rules
for inductively defining a subset of a given set U
◮ axiomsa
are specified by giving an element a of U
which means that a is in the subset we aredefining
◮ rulesh1 h2 · · · hn
c
are specified by giving a finite subset {h1, h2, . . . , hn} of U (the
hypotheses of the rule) and an element c of U (the conclusion
of the rule)
which means that c is in the subset we aredefining if all of h1, h2, . . . , hn are
![Page 21: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/21.jpg)
Derivations
Given a set of axioms and rules for inductively defining asubset of a given set U, a derivation (or proof) that aparticular element u ∈ U is in the subset is by definition:
a finite rooted tree with vertexes labelled by elements of Uand such that:
◮ the root of the tree is u (the conclusion of the wholederivation),
◮ each vertex of the tree is the conclusion of a rulewhose hypotheses are the children of the node,
◮ each leaf of the tree is an axiom.
we’ll draw with leaves at top, root at bottom
![Page 22: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/22.jpg)
Example
U = {a, b}∗
axiom:ε
rules:u
aub
u
bua
u v
uv(for all u, v ∈ U)
Example derivations:
ε
ab
ε
ab
aabb
abaabb
ε
ba
ε
ab
baab
abaabb
![Page 23: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/23.jpg)
Example
U = {a, b}∗ The universal set from whichwe are specifying a subset.
axiom:ε
rules:u
aub
u
bua
u v
uv(for all u, v ∈ U)
Example derivations:
ε
ab
ε
ab
aabb
abaabb
ε
ba
ε
ab
baab
abaabb
![Page 24: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/24.jpg)
Example
U = {a, b}∗ It is the set of all finitestrings containing a’s & b’s.
axiom:ε
rules:u
aub
u
bua
u v
uv(for all u, v ∈ U)
Example derivations:
ε
ab
ε
ab
aabb
abaabb
ε
ba
ε
ab
baab
abaabb
![Page 25: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/25.jpg)
Example
U = {a, b}∗
Now the axioms and rules to define thesubset :
axiom:ε
rules:u
aub
u
bua
u v
uv(for all u, v ∈ U)
Example derivations:
ε
ab
ε
ab
aabb
abaabb
ε
ba
ε
ab
baab
abaabb
![Page 26: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/26.jpg)
Inductively defined subsets
Given a set of axioms and rules over a set U, the subset ofU inductively defined by the axioms and rules consists ofall and only the elements u ∈ U for which there is aderivation with conclusion u.
For example, for the axioms and rules on Slide 14
◮ abaabb is in the subset they inductively define (as witnessed byeither derivation on that slide)
◮ abaab is not in that subset (there is no derivation with thatconclusion – why?)
(In fact u ∈ {a, b}∗ is in the subset iff it contains the same number of a and b symbols.)
![Page 27: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/27.jpg)
rules or templates?
u v
uv(for all u, v ∈ U)
is really a template for a (potentially) infiniteset of rules
![Page 28: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/28.jpg)
Example: transitive closure
Given a binary relation R ⊆ X × X on a set X, itstransitive closure R+ is the smallest (for subsetinclusion) binary relation on X which contains R and whichis transitive (∀x, y, z ∈ X. (x, y) ∈ R+ & (y, z) ∈ R+ ⇒ (x, z) ∈ R+).
R+ is equal to the subset of X × X inductively defined by
axioms(x, y)
(for all (x, y) ∈ R)
rules(x, y) (y, z)
(x, z)(for all x, y, z ∈ X)
![Page 29: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/29.jpg)
Example: reflexive-transitive closure
Given a binary relation R ⊆ X × X on a set X, itsreflexive-transitive closure R∗ is defined to be thesmallest binary relation on X which contains R, is bothtransitive and reflexive (∀x ∈ X. (x, x) ∈ R∗).
R∗ is equal to the subset of X × X inductively defined by
axioms(x, y)
(for all (x, y) ∈ R)(x, x)
(for all x ∈ X)
rules(x, y) (y, z)
(x, z)(for all x, y, z ∈ X)
![Page 30: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/30.jpg)
Example: reflexive-transitive closure
Given a binary relation R ⊆ X × X on a set X, itsreflexive-transitive closure R∗ is defined to be thesmallest binary relation on X which contains R, is bothtransitive and reflexive (∀x ∈ X. (x, x) ∈ R∗).
R∗ is equal to the subset of X × X inductively defined by
axioms(x, y)
(for all (x, y) ∈ R)(x, x)
(for all x ∈ X)
rules(x, y) (y, z)
(x, z)(for all x, y, z ∈ X)
we can use Rule Induction to prove this
![Page 31: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/31.jpg)
Example: reflexive-transitive closure
Given a binary relation R ⊆ X × X on a set X, itsreflexive-transitive closure R∗ is defined to be thesmallest binary relation on X which contains R, is bothtransitive and reflexive (∀x ∈ X. (x, x) ∈ R∗).
R∗ is equal to the subset of X × X inductively defined by
axioms(x, y)
(for all (x, y) ∈ R)(x, x)
(for all x ∈ X)
rules(x, y) (y, z)
(x, z)(for all x, y, z ∈ X)
we can use Rule Induction to prove this, since S ⊆ X × Xbeing closed under the axioms & rules is the same as it
containing R, being reflexive and being transitive.
![Page 32: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/32.jpg)
Inductively defined subsets
Given a set of axioms and rules over a set U, the subset ofU inductively defined by the axioms and rules consists ofall and only the elements u ∈ U for which there is aderivation with conclusion u.
Derivation is a finite (labelled) tree with u atroot, axiom at leaves and each vertex theconclusion of a rule whose hypotheses are thechildren of the vertex.
(We usually draw the trees with the root atthe bottom.)
![Page 33: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/33.jpg)
Rule InductionTheorem. The subset I ⊆ U inductively defined by acollection of axioms and rules is closed under them and isthe least such subset: if S ⊆ U is also closed under theaxioms and rules, then I ⊆ S.
Given axioms and rules for inductively defining a subset of a set U, wesay that a subset S ⊆ U is closed under the axioms and rules if
◮ for every axioma
, it is the case that a ∈ S
◮ for every ruleh1 h2 · · · hn
c, if h1, h2, . . . , hn ∈ S, then c ∈ S.
![Page 34: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/34.jpg)
E.g. for the axiom & rules
ǫ
u
aub
u
bua
u v
uvfor all u, v ∈ {a, b}∗
the subset
{u ∈ {a, b}∗ | #a(u) = #b(u)}
(where #a(u) is the number of ’a’sin the string u)
![Page 35: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/35.jpg)
E.g. for the axiom & rules
ǫ
u
aub
u
bua
u v
uvfor all u, v ∈ {a, b}∗
the subset
{u ∈ {a, b}∗ | #a(u) = #b(u)}
is closed under the axiom & rules.
![Page 36: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/36.jpg)
N.B. for a given set R of axioms & rules
{u ∈ U | ∀S ⊆ U.(S closed under R) =⇒ u ∈ S}
is closed under R (Why?) and so is the smallestsuch (with respect to subset inclusion, ⊆)
![Page 37: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/37.jpg)
N.B. for a given set R of axioms & rules
{u ∈ U | ∀S ⊆ U.(S closed under R) =⇒ u ∈ S}
is closed under R (Why?) and so is the smallestsuch (with respect to subset inclusion, ⊆)
This set contains all items that are in every setthat is closed under R
![Page 38: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/38.jpg)
Theorem. The subset I ⊆ U inductively defined by acollection of axioms and rules is closed under them and isthe least such subset: if S ⊆ U is also closed under theaxioms and rules, then I ⊆ S.
“the least subset closed under the axioms &rules”
is sometimes take as the definition of
“inductively defined subset”
![Page 39: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/39.jpg)
Proof of the Theorem [Page 23 of notes]
Closure part
◮ I is closed under each axioma
because we can construct a derivationwitnessing a ∈ I . . .
. . . which is simply a tree with one nodecontaining a
![Page 40: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/40.jpg)
Closure part (2)
◮ I is closed under each rule r =h1 h2 . . . hn
a
because if h1 h2 . . . hn ∈ I . . .
we have n derivations from axioms to eachhi and so . . .
we can just make these the n children toour rule r to form a big tree . . .
which is a derivation witnessing c ∈ I
![Page 41: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/41.jpg)
Proof of the Theorem
so we have closure under rules & axioms
Now the “least such subset” part
We need to show, for every S ⊆ U
(S closed under axioms and rules ) ⇒ I ⊆ S
That is, I is the least subset, in that any othersubset that is closed under the axioms & rulescontains I .
![Page 42: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/42.jpg)
Least Subset
So we need to show that every element of I iscontained in any set S ⊆ U which is closed underthe rules & axioms
Q: How can we characterise an element of I?A: For each element of I there is a derivationthat witnesses its membership
So let’s do induction on the height of thederivation (i.e. the height of the tree)
![Page 43: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/43.jpg)
Least Subset Proof by Induction
P(n) , “all derivations of height nhave their conclusion in S”
Need to show:
◮ P(0) (consider these to be single (axiom)node derivations)
◮ ∀(k ≤ n) P(k) ⇒ P(n + 1)
since if P(n) is true for all n, then allderivations have their conclusion in S, and thusevery element of I is in S.
![Page 44: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/44.jpg)
Least Subset Proof by Induction
P(n) , “all derivations of height nhave their conclusion in S”
◮ P(0):trivially true since conclusion is an axiomand S is closed under axioms
![Page 45: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/45.jpg)
Least Subset Proof by Induction
P(n) , “all derivations of height nhave their conclusion in S”
◮ P(0):trivially true since conclusion is an axiomand S is closed under axioms
◮ ∀(k ≤ n) P(k) ⇒ P(n + 1):
![Page 46: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/46.jpg)
Least Subset Proof by Induction
P(n) , “all derivations of height nhave their conclusion in S”
◮ P(0):trivially true since conclusion is an axiomand S is closed under axioms
◮ ∀(k ≤ n) P(k) ⇒ P(n + 1):Suppose ∀(k ≤ n) P(k) and that D is aderivation of height n + 1 with, say,conclusion c
![Page 47: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/47.jpg)
D
D1
c1
D2
c2
• • • Dk
ck
c
![Page 48: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/48.jpg)
D
D1
c1
D2
c2
• • • Dk
ck
csome rule
c is the result of applying some rule to a set ofconclusions c1 c2 . . . ck
![Page 49: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/49.jpg)
D
D1
c1
D2
c2
• • • Dk
ck
csome rule
heights≤ n
But the derivations for the ci all have height≤ n. So the ci are all in S by assumption
and since S is closed under all axioms & rules,c ∈ S
so ∀(k ≤ n) P(k) ⇒ P(n + 1)
![Page 50: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/50.jpg)
Thus every element in I is in any S that is closedunder the axioms & rules that inductivelydefined I .
Thus I is the least subset that is closed underthose axioms & rules.
![Page 51: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/51.jpg)
Rule InductionTheorem. The subset I ⊆ U inductively defined by acollection of axioms and rules is closed under them and isthe least such subset: if S ⊆ U is also closed under theaxioms and rules, then I ⊆ S.
We use the theorem as method of proof: given a property P(u) ofelements of U, to prove ∀u ∈ I. P(u) it suffices to show
◮ base cases: P(a) holds for each axioma
◮ induction steps: P(h1) & P(h2) & · · · & P(hn)⇒ P(c)
holds for each ruleh1 h2 · · · hn
c
![Page 52: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/52.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
ǫ
u
aub
u
bua
u v
uv
![Page 53: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/53.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
ǫ
u
aub
u
bua
u v
uv
Associated Rule Induction:
![Page 54: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/54.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
ǫ
u
aub
u
bua
u v
uv
Associated Rule Induction:
◮ P(ǫ)
![Page 55: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/55.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
ǫ
u
aub
u
bua
u v
uv
Associated Rule Induction:
◮ P(ǫ)◮ ∀u ∈ I . P(u) ⇒ P(aub)
![Page 56: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/56.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
ǫ
u
aub
u
bua
u v
uv
Associated Rule Induction:
◮ P(ǫ)◮ ∀u ∈ I . P(u) ⇒ P(aub)◮ ∀u ∈ I . P(u) ⇒ P(bua)
![Page 57: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/57.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
ǫ
u
aub
u
bua
u v
uv
Associated Rule Induction:
◮ P(ǫ)◮ ∀u ∈ I . P(u) ⇒ P(aub)◮ ∀u ∈ I . P(u) ⇒ P(bua)◮ ∀u, v ∈ I . P(u)∧ P(v) ⇒ P(uv)
![Page 58: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/58.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
For u ∈ {a, b}∗, let P(u) be the property
u contains the same number of a and b symbols
We can prove ∀u ∈ I. P(u) by rule induction:
◮ base case: P(ε) is true (the number of as and bs is zero!)
![Page 59: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/59.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
For u ∈ {a, b}∗, let P(u) be the property
u contains the same number of a and b symbols
We can prove ∀u ∈ I. P(u) by rule induction:
◮ base case: P(ε) is true (the number of as and bs is zero!)
◮ induction steps: if P(u) and P(v) hold, then clearly so doP(aub), P(bua) and P(uv).
![Page 60: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/60.jpg)
Example using rule induction
Let I be the subset of {a, b}∗ inductively defined by theaxioms and rules on Slide 17 of the notes.
For u ∈ {a, b}∗, let P(u) be the property
u contains the same number of a and b symbols
We can prove ∀u ∈ I. P(u) by rule induction:
◮ base case: P(ε) is true (the number of as and bs is zero!)
◮ induction steps: if P(u) and P(v) hold, then clearly so doP(aub), P(bua) and P(uv).
(It’s not so easy to show ∀u ∈ {a, b}∗. P(u)⇒ u ∈ I – rule induction for I is not much help forthat.)
![Page 61: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/61.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a
u
au
u v
buv
![Page 62: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/62.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
In this case Rule Induction says:if (0) P(a)& (1) ∀u ∈ I . P(u) ⇒ P(au)& (2) ∀u, v ∈ I . P(u)∧ P(v) ⇒ P(buv)then ∀u ∈ I . P(u)
for any predicate P(u)
![Page 63: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/63.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
Asked to show
u ∈ I ⇒ #a(u) > #b(u)
i.e., that there are more ’a’s than ’b’s in everystring in I
![Page 64: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/64.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
Asked to show
u ∈ I ⇒ #a(u) > #b(u)
so do so using Rule Induction with
P(u) = #a(u) > #b(u)
![Page 65: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/65.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
P(u) = #a(u) > #b(u)
(0) P(a) holds (1 > 0)
![Page 66: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/66.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
P(u) = #a(u) > #b(u)
(1) If P(u), then #a(au) = 1 + #a(u)
![Page 67: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/67.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
P(u) = #a(u) > #b(u)
(1) If P(u), then #a(au) = 1 + #a(u)> #a(u) > #b(u) (because P(u))
= #b(au)
![Page 68: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/68.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
P(u) = #a(u) > #b(u)
(1) If P(u), then #a(au) = 1 + #a(u)> #a(u) > #b(u) (because P(u))
= #b(au)so P(au) holds as well, and thus P(u) ⇒ P(au)
![Page 69: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/69.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
P(u) = #a(u) > #b(u)
(2) If P(u)∧ P(v), then #a(buv) = #a(u) + $#a(v)≥ ((#b(u) + 1) + (#b(v) + 1)) (why?)
> #b(buv)so P(buv)
![Page 70: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/70.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
P(u) = #a(u) > #b(u)
if (0) P(a) X
& (1) ∀u ∈ I . P(u) ⇒ P(au) X
& (2) ∀u, v ∈ I . P(u)∧ P(v) ⇒ P(buv) X
then ∀u ∈ I . P(u)so for all u ∈ I, we have #a(u) > #b(u)
![Page 71: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/71.jpg)
Example [CST 2009, Paper2, Question 5]
I ⊆ {a, b}∗ inductively defined by
a0
u
au1
u v
buv2
P(u) = #a(u) > #b(u)
although we have∀u ∈ I . P(u)
we don’t have∀u ∈ {a, b}∗ . P(u) ⇒ u ∈ I
e.g. P(aab) but aab /∈ I (Why?)
![Page 72: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/72.jpg)
Deciding membership of an inductively definedsubset can be hard!
![Page 73: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/73.jpg)
Deciding membership of an inductively definedsubset can be hard!
really, Really hard
e.g. ...
![Page 74: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/74.jpg)
Collatz Conjecture
f (n) =
1 if n = 0, 1
f (n/2) if n > 1, n evenf (3n + 1) if n > 1, n odd
Does this define a total function f : N → N?
(nobody knows)
![Page 75: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/75.jpg)
Collatz Conjecture
f (n) =
1 if n = 0, 1
f (n/2) if n > 1, n evenf (3n + 1) if n > 1, n odd
Does this define a total function f : N → N?
(nobody knows)
(If it does then f is necessarily theunary 1 function n 7→ 1)
![Page 76: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/76.jpg)
Collatz Conjecture
f (n) =
1 if n = 0, 1
f (n/2) if n > 1, n evenf (3n + 1) if n > 1, n odd
Does this define a total function f : N → N?
(nobody knows)
Can reformulate as a problem about inductivelydefined subsets...
![Page 77: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/77.jpg)
Collatz Conjecture
f (n) =
1 if n = 0, 1
f (n/2) if n > 1, n evenf (3n + 1) if n > 1, n odd
Is the subset I ⊆ N inductively defined by
0 1
k
2k
6k + 4
2k + 1(k ≥ 1)
equal to the whole of N?
![Page 78: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/78.jpg)
Regular Expressions
![Page 79: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/79.jpg)
Formal languages
An extensional view of what constitutes a formal language is that it is
completely determined by the set of ‘words in the dictionary’:
Given an alphabet Σ, we call any subset of Σ∗ a (formal)
language over the alphabet Σ.
![Page 80: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/80.jpg)
Concrete syntax: strings of symbols
◮ possibly including symbols to disambiguate the semantics(brackets, white space, etc),
◮ or that have no semantic content (e.g. syntax for comments).
For example, an ML expression:
let fun f x =
if x > 100 then x − 10
else f ( f ( x + 11 ) )
in f 1 end
(∗ v a l u e i s 9 9 ∗)
![Page 81: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/81.jpg)
Abstract syntax: finite rooted trees
◮ vertexes with n children are labelled by operators expecting narguments (n-ary operators) – in particular leaves are labelledwith 0-ary (nullary) operators (constants, variables, etc)
◮ label of the root gives the ‘outermost form’ of the whole phrase
E.g. for the ML expressionon Slide 42:
let
fun
f x if
>
x 100
−
x 10
@
f @
f +
x 11
@
f 1
![Page 82: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/82.jpg)
Regular Expressions
A regular expression defines a pattern ofsymbols (and thus a language).
Important to distinguish between the languagea particular regular expression defines and theset of possible regular expressions.
We about to look at the second of these.
![Page 83: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/83.jpg)
Regular expressions (concrete syntax)
over a given alphabet Σ.
Let Σ′ be the 6-element set {ǫ, ∅, |, ∗, (, )} (assumed disjoint from Σ)
U = (Σ ∪ Σ′)∗
axioms:a ǫ ∅
rules:r
(r)
r s
r|s
r s
rs
r
r∗
(where a ∈ Σ and r, s ∈ U)
![Page 84: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/84.jpg)
Some derivations of regular expressions(assuming a, b ∈ Σ)
ǫ
a
b
b∗
ab∗
ǫ|ab∗
ǫ a
ǫ|a
b
b∗
ǫ|ab∗
ǫ
a b
ab
ab∗
ǫ|ab∗
ǫ
a
b
b∗
(b∗)
a(b∗)
(a(b∗))
ǫ|(a(b∗))
ǫ a
ǫ|a
(ǫ|a)
b
b∗
(b∗)
(ǫ|a)(b∗)
ǫ
a b
ab
(ab)
(ab)∗
((ab)∗)
ǫ|((ab)∗)
![Page 85: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/85.jpg)
Regular expressions (abstract syntax)
The ‘signature’ for regular expression abstract syntax trees(over an alphabet Σ) consists of
◮ binary operators Union and Concat
◮ unary operator Star
◮ nullary operators (constants) Null, Empty and Syma
(one for each a ∈ Σ).
![Page 86: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/86.jpg)
Regular expressions (abstract syntax)
The ‘signature’ for regular expression abstract syntax trees(over an alphabet Σ) as an ML datatype declaration:
datatype ′a RE = Union of (′a RE) ∗ (′a RE)| Concat of (′a RE) ∗ (′a RE)| Star of ′a RE
| Null
| Empty
| Sym of ′a
(the type ′a RE is parameterised by a type variable ′
a standing for the alphabet Σ)
![Page 87: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/87.jpg)
Some abstract syntax trees of regular expressions(assuming a, b ∈ Σ)
1. 2. 3.
Union
Null Concat
Syma Star
Symb
Concat
Union
Null Syma
Star
Symb
Union
Null Star
Concat
Syma Symb
(cf. examples a few slides previous)
We will use a textual representation of trees, for example:
1. Union(Null, Concat(Syma, Star(Symb)))
2. Concat(Union(Null, Syma), Star(Symb))
3. Union(Null, Star(Concat(Syma, Symb)))
![Page 88: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/88.jpg)
Relating concrete and abstract syntax
for regular expressions over an alphabet Σ, via aninductively defined relation ∼ between strings and trees:
a ∼ Syma ǫ ∼ Null ∅ ∼ Empty
r ∼ R
(r) ∼ R
r ∼ R s ∼ S
r|s ∼ Union(R, S)
r ∼ R s ∼ S
rs ∼ Concat(R, S)
r ∼ R
r∗ ∼ Star(R)
![Page 89: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/89.jpg)
For example:
ǫ|(a(b∗)) ∼ Union(Null, Concat(Syma, Star(Symb)))
ǫ|ab∗ ∼ Union(Null, Concat(Syma, Star(Symb)))
ǫ|ab∗ ∼ Concat(Union(Null, Syma), Star(Symb))
Thus ∼ is a ‘many-many’ relation between strings and trees.
◮ Parsing: algorithms for producing abstract syntaxtrees parse(r) from concrete syntax r, satisfyingr ∼ parse(r).
◮ Pretty printing: algorithms for producing concretesyntax pp(R) from abstract syntax trees R, satisfyingpp(R) ∼ R.
(See CST IB Compiler construction course.)
![Page 90: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/90.jpg)
Operator precedence for regular expressions
Star > Concat > Union
Soε|ab∗ stands for ε|(a(b∗))
Union (Null, Concat (Syma, Star (Symb)))
![Page 91: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/91.jpg)
Associativity for regular expressions
Concat & Union are left associative
Soabc stands for (ab)c
a|b|c stands for (a|b)|c
![Page 92: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/92.jpg)
From now on, we will rely on operatorprecedence (& associativity) conventions in theconcrete syntax of regular expressions toallow us to map unambiguously to theirabstract syntax
associativity less important (in some sense)than precedence because the meaning(semantics) of concatenation and union isalways associative but not true of all operators, e.g. division
so abc has the same abstract syntax as (ab)c,but different abstract syntax from a(bc), butall of these have the same semantics.
![Page 93: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/93.jpg)
Matching
Each regular expression r over an alphabet Σ determines alanguage L(r) ⊆ Σ
∗. The strings u in L(r) are bydefinition the ones that match r, where
◮ u matches the regular expression a (where a ∈ Σ) iff u = a
◮ u matches the regular expression ǫ iff u is the null string ε
◮ no string matches the regular expression ∅
◮ u matches r|s iff it either matches r, or it matches s
◮ u matches rs iff it can be expressed as the concatenation of twostrings, u = vw, with v matching r and w matching s
◮ u matches r∗ iff either u = ε, or u matches r, or u can beexpressed as the concatenation of two or more strings, each ofwhich matches r.
![Page 94: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/94.jpg)
Inductive definition of matching
U = Σ∗ ×{regular expressions over Σ}
axioms:(a, a) (ε, ǫ) (ε, r∗)
rules:
(u, r)
(u, r|s)
(u, s)
(u, r|s)
(v, r) (w, s)
(vw, rs)
(u, r) (v, r∗)
(uv, r∗)
abstract syntax trees
(No axiom/rule involves the empty regular expression ∅ – why?)
![Page 95: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/95.jpg)
Examples of matching
Assuming Σ = {a, b}, then:
◮ a|b is matched by each symbol in Σ
◮ b(a|b)∗ is matched by any string in Σ∗ that starts with a ‘b’
◮ ((a|b)(a|b))∗ is matched by any string of even length in Σ∗
◮ (a|b)∗(a|b)∗ is matched by any string in Σ∗
◮ (ε|a)(ε|b)|bb is matched by just the strings ε, a, b, ab, and bb
◮ ∅b|a is just matched by a
![Page 96: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/96.jpg)
Questions Computer Scientists ask
(a) Is there an algorithm which, given a stringu and a regular expression r, computeswhether or not u matches r?
in other words, decides, for any r, whetheru ∈ L(r)
![Page 97: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/97.jpg)
Questions Computer Scientists ask
(a) Is there an algorithm which, given a stringu and a regular expression r, computeswhether or not u matches r?
in other words, decides, for any r, whetheru ∈ L(r)
An algorithm? what’s an algorithm? I meanwhat is it in a mathematical sense?
![Page 98: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/98.jpg)
Questions Computer Scientists ask
(a) Is there an algorithm which, given a stringu and a regular expression r, computeswhether or not u matches r?
in other words, decides, for any r, whetheru ∈ L(r)
An algorithm? what’s an algorithm? I meanwhat is it in a mathematical sense?
leads us to define automata which "executealgorithms"
![Page 99: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/99.jpg)
Questions Computer Scientists ask
(a) Is there an algorithm which, given a stringu and a regular expression r, computeswhether or not u matches r?
in other words, decides, for any r, whetheru ∈ L(r)
An algorithm? what’s an algorithm? I meanwhat is it in a mathematical sense?
leads us to define automata which "executealgorithms"next chunk of the course...
![Page 100: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/100.jpg)
Questions Computer Scientists ask
(b) In formulating the definition of regularexpressions, have we missed out somepractically useful notions of pattern?
![Page 101: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/101.jpg)
Questions Computer Scientists ask
(b) In formulating the definition of regularexpressions, have we missed out somepractically useful notions of pattern?
Yes
![Page 102: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/102.jpg)
Questions Computer Scientists ask
(b) In formulating the definition of regularexpressions, have we missed out somepractically useful notions of pattern?
Yes
Yes because there are convenient notationslike [a − z] to mean a|b|c . . . |z and complement,∼ r, which is defined to match all strings that rdoes not. Look at the unix utility grep.
![Page 103: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/103.jpg)
Questions Computer Scientists ask
(b) In formulating the definition of regularexpressions, have we missed out somepractically useful notions of pattern?
Yes and No
Yes because there are convenient notationslike [a − z] to mean a|b|c . . . |z and complement,∼ r, which is defined to match all strings that rdoes not. Look at the unix utility grep.
![Page 104: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/104.jpg)
Questions Computer Scientists ask
(b) In formulating the definition of regularexpressions, have we missed out somepractically useful notions of pattern?
Yes and No
Yes because there are convenient notationslike [a − z] to mean a|b|c . . . |z and complement,∼ r, which is defined to match all strings that rdoes not. Look at the unix utility grep.
No because such conveniences don’t allow us todefine languages we can’t already define
![Page 105: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/105.jpg)
Questions Computer Scientists ask
(b) In formulating the definition of regularexpressions, have we missed out somepractically useful notions of pattern?
Yes and No
Yes because there are convenient notationslike [a − z] to mean a|b|c . . . |z and complement,∼ r, which is defined to match all strings that rdoes not. Look at the unix utility grep.
No because such conveniences don’t allow us todefine languages we can’t already define
Why not include them in our basic definition??
![Page 106: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/106.jpg)
Questions Computer Scientists ask
(b) In formulating the definition of regularexpressions, have we missed out somepractically useful notions of pattern?
Yes and No
Yes because there are convenient notationslike [a − z] to mean a|b|c . . . |z and complement,∼ r, which is defined to match all strings that rdoes not. Look at the unix utility grep.
No because such conveniences don’t allow us todefine languages we can’t already define
Why not include them in our basic definition??
because they give us more rules to analyse!
![Page 107: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/107.jpg)
Questions Computer Scientists ask
(c) Is there an algorithm which, given tworegular expressions r and s, computeswhether or not they are equivalent, in thesense that L(r) and L(s) are equal sets?
We will answer this when we answer (a).
![Page 108: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/108.jpg)
Questions Computer Scientists ask
(d) Is every language (subset of Σ∗) of the
form L(r) for some r?
Pretty clearly no.
![Page 109: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/109.jpg)
Questions Computer Scientists ask
(d) Is every language (subset of Σ∗) of the
form L(r) for some r?
Pretty clearly no.
in fact even simple languages like anbn,∀n ∈ N
or wellbracketed arithmetic expressions arenot regular
![Page 110: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/110.jpg)
Questions Computer Scientists ask
(d) Is every language (subset of Σ∗) of the
form L(r) for some r?
Pretty clearly no.
in fact even simple languages like anbn,∀n ∈ N
or wellbracketed arithmetic expressions arenot regular
we will derive and use the Pumping Lemma toshow this
![Page 111: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/111.jpg)
Some questions
(a) Is there an algorithm which, given a string u and aregular expression r, computes whether or not umatches r?
(b) In formulating the definition of regular expressions,have we missed out some practically useful notions ofpattern?
(c) Is there an algorithm which, given two regularexpressions r and s, computes whether or not they areequivalent, in the sense that L(r) and L(s) areequal sets?
(d) Is every language (subset of Σ∗) of the form L(r) for
some r?
![Page 112: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/112.jpg)
Finite Automata
![Page 113: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/113.jpg)
We are about to describe some differenttypes of finite automata.
The game plan is as follows:
◮ define (nondeterministic) finite automatain general
![Page 114: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/114.jpg)
We are about to describe some differenttypes of finite automata.
The game plan is as follows:
◮ define (nondeterministic) finite automatain general
◮ define deterministic finite automata (as aspecial case)
![Page 115: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/115.jpg)
We are about to describe some differenttypes of finite automata.
The game plan is as follows:
◮ define (nondeterministic) finite automatain general
◮ define deterministic finite automata (as aspecial case)
◮ define nondeterministic finite automatawith εtransitions
![Page 116: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/116.jpg)
We are about to describe some differenttypes of finite automata.
The game plan is as follows:
◮ define (nondeterministic) finite automatain general
◮ define deterministic finite automata (as aspecial case)
◮ define nondeterministic finite automatawith εtransitions
◮ show that from any nondeterministicfinite automaton with εtransitions wecan mechanically produce an equivalentdeterministic finite automaton
![Page 117: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/117.jpg)
Why?
◮ we are claiming that a deterministic finiteautomata (DFA) is an embodiment of analgorithm
![Page 118: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/118.jpg)
Why?
◮ we are claiming that a deterministic finiteautomata (DFA) is an embodiment of analgorithm
◮ nondeterministic finite automata withεtransitions (NFAε’s) map on to ourproblem (matching regular expressions)more naturally . . .
![Page 119: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/119.jpg)
Why?
◮ we are claiming that a deterministic finiteautomata (DFA) is an embodiment of analgorithm
◮ nondeterministic finite automata withεtransitions (NFAε’s) map on to ourproblem (matching regular expressions)more naturally . . .
◮ . . . so we will produced the NFAε’s we wantand then rely on the fact that for eachthere is an equivalent DFA.
![Page 120: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/120.jpg)
Example of a finite automaton
M , q0a
b
q1
b
a q2
b
a q3
a
b
◮ set of states: {q0, q1, q2, q3}
◮ input alphabet: {a, b}
◮ transitions, labelled by input symbols: as indicated by the abovedirected graph
◮ start state: q0
◮ accepting state(s): q3
![Page 121: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/121.jpg)
Language acceptedby a finite automaton M
◮ Look at paths in the transition graph from the startstate to some accepting state.
◮ Each such path gives a string of input symbols, namelythe string of labels on each transition in the path.
◮ The set of all such strings is by definition the
language accepted by M, written L(M).
Notation: write qu−→∗ q′ to mean that in the automaton there is a
path from state q to state q′ whose labels form the string u.
(N.B. qε−→∗ q′ means q = q′.)
![Page 122: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/122.jpg)
Example of an accepted language
M , q0a
b
q1
b
a q2
b
a q3
a
b
For example
◮ aaab ∈ L(M), because q0aaab−−→∗ q3
◮ abaa 6∈ L(M), because ∀q(q0abaa−−→∗ q ⇔ q = q2)
![Page 123: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/123.jpg)
Example of an accepted language
M , q0a
b
q1
b
a q2
b
a q3
a
b
Claim:L(M) = L((a|b)∗aaa(a|b)∗)
set of all strings matching the
regular expression (a|b)∗aaa(a|b)∗
(qi (for i = 0, 1, 2) represents the state in the process of reading a string in which the last isymbols read were all a’s)
![Page 124: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/124.jpg)
Non-deterministicfinite automaton (NFA)
is by definition a 5-tuple M = (Q, Σ, ∆, s, F), where:
◮ Q is a finite set (of states)
◮ Σ is a finite set (the alphabet of input symbols)
◮ ∆ is a subset of Q × Σ × Q (the transition relation)
◮ s is an element of Q (the start state)
◮ F is a subset of Q (the accepting states)
Notation: write “qa−→ q′ in M” to mean (q, a, q′) ∈ ∆.
![Page 125: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/125.jpg)
Why do we say this is nondeterministic?
∆, the transition relation specifies a set ofnext states for a given current state andgiven input symbol.
That set might have 0, 1 or more elements.
![Page 126: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/126.jpg)
Example of an NFA
Input alphabet: {a, b}.
States, transitions, start state, and accepting states as shown:
q0
a
b
a q1a q2
a q3
a
b
For example {q | q1a−→ q} = {q2}
{q | q1b−→ q} = ∅
{q | q0a−→ q} = {q0, q1}.
The language accepted by this automaton is the same as for our first automaton,namely {u ∈ {a, b}∗ | u contains three consecutive a’s}.
![Page 127: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/127.jpg)
So we define a deterministic finite automataso that ∆ is restricted to specify exactly onenext state for any given state and input symbol
we do this by saying the relation ∆ has to be afunction δ from Q × Σ to Q
![Page 128: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/128.jpg)
Deterministic finite automaton (DFA)A deterministic finite automaton (DFA) is an NFAM = (Q, Σ, ∆, s, F) with the property that for each stateq ∈ Q and each input symbol a ∈ ΣM, there is a unique
state q′ ∈ Q satisfying qa−→ q′.
In a DFA ∆ ⊆ Q × Σ × Q is the graph of a function Q × Σ → Q,which we write as δ and call the next-state function.
Thus for each (state, input symbol)-pair (q, a), δ(q, a) is the uniquestate that can be reached from q by a transition labelled a:
∀q′(qa−→ q′ ⇔ q′ = δ(q, a))
![Page 129: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/129.jpg)
Example of a DFA...
with input alphabet {a, b}
M , q0a
b
q1
b
a q2
b
a q3
a
b
next-state function:
δ a bq0 q1 q0
q1 q2 q0
q2 q3 q0
q3 q3 q3
![Page 130: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/130.jpg)
but this is an NFA
with input alphabet {a, b, c}
M , q0a
b
q1
b
a q2
b
a q3
a
b
M is non-deterministic, because for example {q | q0c−→ q} = ∅.
so alphabet matters!
![Page 131: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/131.jpg)
Now let’s make things a bit more interesting(well complicated) . . .
We are going to introduce a new form oftransition, an εtransition which allows us tomore from one state to another withoutreading a symbol.
These (in general) introduce nondeterminismall by themselves.
![Page 132: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/132.jpg)
An NFA with ε-transitions (NFAε)M = (Q, Σ, ∆, s, F, T)
is an NFA (Q, Σ, ∆, s, F) together with a subsetT ⊆ Q × Q, called the ε-transition relation.
Example: q1a q2
a q3ε
q0
ε
ε
a
b
q7
a
bq4b
q5b
q6ε
Notation: write “qε−→ q′ in M” to mean (q, q′) ∈ T.
(N.B. for NFAεs, we always assume ε 6∈ Σ.)
![Page 133: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/133.jpg)
Language accepted by an NFAε
M = (Q, Σ, ∆, s, F, T)
◮ Look at paths in the transition graph (includingε-transitions) from start state to some accepting state.
◮ Each such path gives a string in Σ∗, namely the string
of non-ε labels that occur along the path.
◮ The set of all such strings is by definition the
language accepted by M, written L(M).
Notation: write qu⇒ q′ to mean that there is a path in M from state
q to state q′ whose non-ε labels form the string u ∈ Σ∗.
![Page 134: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/134.jpg)
An NFA with ε-transitions (NFAε)M = (Q, Σ, ∆, s, F, T)
is an NFA (Q, Σ, ∆, s, F) together with a subsetT ⊆ Q × Q, called the ε-transition relation.
Example: q1a q2
a q3ε
q0
ε
ε
a
b
q7
a
bq4b
q5b
q6ε
For this NFAε we have, e.g.: q0aa⇒ q2, q0
aa⇒ q3 and q0
aa⇒ q7.
In fact the language of accepted strings is equal to the set of stringsmatching the regular expression (a|b)∗(aa|bb)(a|b)∗.
![Page 135: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/135.jpg)
Sets of Languages Accepted by FiniteAutomata
◮ every DFA is an NFA (with transitionmapping ∆ being a nextstate function δ)
![Page 136: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/136.jpg)
Sets of Languages Accepted by FiniteAutomata
◮ every DFA is an NFA (with transitionmapping ∆ being a nextstate function δ)
◮ every NFA is an NFAε (with emptyεtransition relation)
![Page 137: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/137.jpg)
Sets of Languages Accepted by FiniteAutomata
◮ every DFA is an NFA (with transitionmapping ∆ being a nextstate function δ)
◮ every NFA is an NFAε (with emptyεtransition relation)
![Page 138: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/138.jpg)
Sets of Languages Accepted by FiniteAutomata
◮ every DFA is an NFA (with transitionmapping ∆ being a nextstate function δ)
◮ every NFA is an NFAε (with emptyεtransition relation)
clearly
L(DFA) ⊆ L(NFA) ⊆ L(NFAǫ)
![Page 139: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/139.jpg)
Sets of Languages Accepted by FiniteAutomata
◮ every DFA is an NFA (with transitionmapping ∆ being a nextstate function δ)
◮ every NFA is an NFAε (with emptyεtransition relation)
clearly
L(DFA) ⊆ L(NFA) ⊆ L(NFAǫ)
but
L(DFA) ⊂ L(NFA) ⊂ L(NFAǫ)???
![Page 140: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/140.jpg)
NFAε accepts if there exists a path...
DFA: path is determined one symbol at a time
Let Q be the states of some NFAε. What ifwe thought, one symbol at a time, about thestates we could be in, or more precisely thesubset of Q containing the states we could bein
![Page 141: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/141.jpg)
NFAε accepts if there exists a path...
DFA: path is determined one symbol at a time
Let Q be the states of some NFAε. What ifwe thought, one symbol at a time, about thestates we could be in, or more precisely thesubset of Q containing the states we could bein
Then we could construct a new DFA whosestates were taken from the powerset of Qfrom the NFAε
![Page 142: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/142.jpg)
Subset Construction
Given an NFAε M with states Q construct aDFA PM whose states are subsets of thestates of M
![Page 143: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/143.jpg)
Subset Construction
Given an NFAε M with states Q construct aDFA PM whose states are subsets of thestates of M
the start state in PM would be a setcontaining the start state of M togetherwith any states that can be reached byεtransitions from that state.
![Page 144: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/144.jpg)
Subset Construction
Given an NFAε M with states Q construct aDFA PM whose states are subsets of thestates of M
the start state in PM would be a setcontaining the start state of M togetherwith any states that can be reached byεtransitions from that state.
accepting states in PM would be any subsetcontaining an accepting state of M
![Page 145: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/145.jpg)
Subset Construction
Given an NFAε M with states Q construct aDFA PM whose states are subsets of thestates of M
the start state in PM would be a setcontaining the start state of M togetherwith any states that can be reached byεtransitions from that state.
accepting states in PM would be any subsetcontaining an accepting state of M
alphabet is the same as the alphabet of M
![Page 146: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/146.jpg)
Subset Construction
Given an NFAε M with states Q construct aDFA PM whose states are subsets of thestates of M
the start state in PM would be a setcontaining the start state of M togetherwith any states that can be reached byεtransitions from that state.
accepting states in PM would be any subsetcontaining an accepting state of M
alphabet is the same as the alphabet of M
That just leaves δ
![Page 147: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/147.jpg)
Example of the subset construction
M
q1
a
q0
ε
ε
a
q2
b
next-state function for PMa b
∅ ∅ ∅
{q0} {q0, q1, q2} {q2}{q1} {q1} ∅
{q2} ∅ {q2}{q0, q1} {q0, q1, q2} {q2}{q0, q2} {q0, q1, q2} {q2}{q1, q2} {q1} {q2}
{q0, q1, q2} {q0, q1, q2} {q2}
![Page 148: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/148.jpg)
A word about ∅ in the subsetconstruction
Potential for confusion
◮ The DFA has a state which corresponds to the emptyset of states in the NFAε which we have designatedas ∅.
◮ Once you enter this state we get stuck in it. Why?
◮ Could rewrite (next slide)
![Page 149: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/149.jpg)
DFA State subset of NFAε a bS1 ∅ S1 S1
S2 {q0} S8 S4
S3 {q1} S3 S1
S4 {q2} S2 S4
S5 {q0, q1} S8 S4
S6 {q0, q2} S8 S4
S7 {q1, q2} S3 S4
S8 {q0, q1, q2} S8 S4
Noting that S8 is the start state (why?) we could eliminatestates that can’t be reached (i.e. S2, S5, S6 and S7; andthence S3) if we cared. Here we don’t. (Care that is).
![Page 150: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/150.jpg)
Theorem. For each NFAε M = (Q, Σ, ∆, s, F, T) thereis a DFA PM = (P(Q), Σ, δ, s′, F′) accepting exactlythe same strings as M, i.e. with L(PM) = L(M).
Definition of PM:
◮ set of states is the powerset P(Q) = {S | S ⊆ Q} of the setQ of states of M
◮ same input alphabet Σ as for M
◮ next-state function maps each (S, a) ∈ P(Q)× Σ to
δ(S, a) , {q′ ∈ Q | ∃q ∈ S. qa⇒ q′ in M}
◮ start state is s′ , {q′ ∈ Q | sε⇒ q′}
◮ subset of accepting sates is F′ , {S ∈ P(Q) | S ∩ F 6= ∅}
To prove the theorem we show that L(M) ⊆ L(PM) and L(PM) ⊆ L(M).
![Page 151: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/151.jpg)
Consider a string a1a2 . . . an ∈ L(M), i.e. isaccepted by our NFAε M
Then we have
sa1⇒ q1
a2⇒ . . .an⇒ qn ∈ F in M
![Page 152: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/152.jpg)
Consider a string a1a2 . . . an ∈ L(M), i.e. isaccepted by our NFAε M
Then we have
sa1⇒ q1
a2⇒ . . .an⇒ qn ∈ F in M
∈ ∈
S′ a1−→ S1=
δ(S′, a1)
![Page 153: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/153.jpg)
Consider a string a1a2 . . . an ∈ L(M), i.e. isaccepted by our NFAε M
Then we have
sa1⇒ q1
a2⇒ . . .an⇒ qn ∈ F in M
∈ ∈ ∈S′ a1−→ S1
a2−→ . . .an−→ Sn in PM
![Page 154: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/154.jpg)
Consider a string a1a2 . . . an ∈ L(M), i.e. isaccepted by our NFAε M
Then we have
sa1⇒ q1
a2⇒ . . .an⇒ qn ∈ F in M
∈ ∈ ∈S′ a1−→ S1
a2−→ . . .an−→ Sn in PM
![Page 155: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/155.jpg)
Consider a string a1a2 . . . an ∈ L(M), i.e. isaccepted by our NFAε M
Then we have
sa1⇒ q1
a2⇒ . . .an⇒ qn ∈ F in M
∈ ∈ ∈S′ a1−→ S1
a2−→ . . .an−→ Sn ∈ F′ in PM
![Page 156: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/156.jpg)
Consider a string a1a2 . . . an ∈ L(M), i.e. isaccepted by our NFAε M
Then we have
sa1⇒ q1
a2⇒ . . .an⇒ qn ∈ F in M
∈ ∈ ∈S′ a1−→ S1
a2−→ . . .an−→ Sn ∈ F′ in PM
so a1a2 . . . an ∈ L(PM)
![Page 157: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/157.jpg)
Consider a string a1a2 . . . an ∈ L(M), i.e. isaccepted by our NFAε M
Then we have
sa1⇒ q1
a2⇒ . . .an⇒ qn ∈ F in M
∈ ∈ ∈S′ a1−→ S1
a2−→ . . .an−→ Sn ∈ F′ in PM
so a1a2 . . . an ∈ L(PM)
so L(M) ⊆ L(PM)
![Page 158: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/158.jpg)
Consider a string a1a2 . . . an ∈ L(PM), i.e. isaccepted by our DFA PM
Then we have
S′ a1−→ S1
a2−→ . . . Sn−1
an−→ Sn∈ F′ in PM
![Page 159: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/159.jpg)
Consider a string a1a2 . . . an ∈ L(PM), i.e. isaccepted by our DFA PM
Then we have
S′ a1−→ S1
a2−→ . . . Sn−1
an−→ Sn∈ F′ in PM
∈
qn ∈ F in M
![Page 160: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/160.jpg)
Consider a string a1a2 . . . an ∈ L(PM), i.e. isaccepted by our DFA PM
Then we have
S′ a1−→ S1
a2−→ . . . Sn−1
an−→ Sn∈ F′ in PM
∈ ∈ ∈ ∈
q0
a1⇒ q1
a2⇒ . . . qn−1
an⇒ qn ∈ F in M
![Page 161: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/161.jpg)
Consider a string a1a2 . . . an ∈ L(PM), i.e. isaccepted by our DFA PM
Then we have
S′ a1−→ S1
a2−→ . . . Sn−1
an−→ Sn∈ F′ in PM
∈ ∈ ∈ ∈
q0
a1⇒ q1
a2⇒ . . . qn−1
an⇒ qn ∈ F in M
⇒εs
![Page 162: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/162.jpg)
Consider a string a1a2 . . . an ∈ L(PM), i.e. isaccepted by our DFA PM
Then we have
S′ a1−→ S1
a2−→ . . . Sn−1
an−→ Sn∈ F′ in PM
∈ ∈ ∈ ∈
q0
a1⇒ q1
a2⇒ . . . qn−1
an⇒ qn∈ F in M
⇒εs
![Page 163: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/163.jpg)
Consider a string a1a2 . . . an ∈ L(PM), i.e. isaccepted by our DFA PM
Then we have
S′ a1−→ S1
a2−→ . . . Sn−1
an−→ Sn∈ F′ in PM
∈ ∈ ∈ ∈
q0
a1⇒ q1
a2⇒ . . . qn−1
an⇒ qn∈ F in M
⇒εs
so a1a2 . . . an ∈ L(M)
![Page 164: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/164.jpg)
Consider a string a1a2 . . . an ∈ L(PM), i.e. isaccepted by our DFA PM
Then we have
S′ a1−→ S1
a2−→ . . . Sn−1
an−→ Sn∈ F′ in PM
∈ ∈ ∈ ∈
q0
a1⇒ q1
a2⇒ . . . qn−1
an⇒ qn∈ F in M
⇒εs
so a1a2 . . . an ∈ L(M)so L(PM) ⊆ L(M)
![Page 165: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/165.jpg)
So we have shown
L(M) ⊆ L(PM) and L(PM) ⊆ L(M)
so thatL(M) = L(PM)
where PM is specified by M through subsetconstruction.
Thus for every NFAε there is an equivalentDFA
![Page 166: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/166.jpg)
Theorem. For each NFAε M = (Q, Σ, ∆, s, F, T) thereis a DFA PM = (P(Q), Σ, δ, s′, F′) accepting exactlythe same strings as M, i.e. with L(PM) = L(M).
Definition of PM:
◮ set of states is the powerset P(Q) = {S | S ⊆ Q} of the setQ of states of M
◮ same input alphabet Σ as for M
◮ next-state function maps each (S, a) ∈ P(Q)× Σ to
δ(S, a) , {q′ ∈ Q | ∃q ∈ S. qa⇒ q′ in M}
◮ start state is s′ , {q′ ∈ Q | sε⇒ q′}
◮ subset of accepting sates is F′ , {S ∈ P(Q) | S ∩ F 6= ∅}
To prove the theorem we show that L(M) ⊆ L(PM) and L(PM) ⊆ L(M).
![Page 167: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/167.jpg)
At this point we should think of
◮ the set of all language {L(r)} defined by asome regular expression r, each languagebeing the set of strings which match someregular expression r
![Page 168: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/168.jpg)
At this point we should think of
◮ the set of all language {L(r)} defined by asome regular expression r, each languagebeing the set of strings which match someregular expression r
◮ the set of all languages {L(M)} accepted bysome determinisitic finite automaton M
![Page 169: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/169.jpg)
At this point we should think of
◮ the set of all language {L(r)} defined by asome regular expression r, each languagebeing the set of strings which match someregular expression r
We are about to show that these sets oflanguages are equivalent
![Page 170: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/170.jpg)
Kleene’s Theorem
![Page 171: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/171.jpg)
Kleene’s Theorem
Definition. A language is regular iff it is equal to L(M),the set of strings accepted by some deterministic finiteautomaton M.
Theorem.
(a) For any regular expression r, the set L(r) of stringsmatching r is a regular language.
(b) Conversely, every regular language is the form L(r) forsome regular expression r.
![Page 172: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/172.jpg)
The first part requires us to demonstratethat for any regular expression r, we canconstruct a DFA, M with L(M) = L(r)
We will do this by demonstrating that for any rwe can construct a NFAε M′ with L(M′) = L(r)and rely on the subset construction theoremto give us the DFA M .
We consider each axiom and rule that defineregular expressions
![Page 173: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/173.jpg)
Kleene’s Theorem Part a (The Fun Part)
For any regular expression r we can build anNFAε M such that L(r) = L(M)
We will work on induction on the depth ofabstract syntax trees
![Page 174: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/174.jpg)
Recall: Regular expressions (abstractsyntax)
The ‘signature’ for regular expression abstract syntax trees(over an alphabet Σ) consists of
◮ binary operators Union and Concat
◮ unary operator Star
◮ nullary operators (constants) Null, Empty and Syma
(one for each a ∈ Σ).
![Page 175: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/175.jpg)
Recall: Regular expressions (abstractsyntax)
(concrete syntax)
The ‘signature’ for regular expression abstract syntax trees(over an alphabet Σ) consists of
◮ binary operators Union and Concat
◮ unary operator Star
◮ nullary operators (constants) Null, Empty and Syma
(one for each a ∈ Σ).
![Page 176: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/176.jpg)
Recall: Regular expressions (abstractsyntax)
(concrete syntax)
The ‘signature’ for regular expression abstract syntax trees(over an alphabet Σ) consists of
◮ binary operators Union and Concatr1|r2 r1r2
◮ unary operator Star
◮ nullary operators (constants) Null, Empty and Syma
(one for each a ∈ Σ).
![Page 177: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/177.jpg)
Recall: Regular expressions (abstractsyntax)
(concrete syntax)
The ‘signature’ for regular expression abstract syntax trees(over an alphabet Σ) consists of
◮ binary operators Union and Concatr1|r2 r1r2
◮ unary operator Star r∗
◮ nullary operators (constants) Null, Empty and Syma
(one for each a ∈ Σ).
![Page 178: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/178.jpg)
Recall: Regular expressions (abstractsyntax)
(concrete syntax)
The ‘signature’ for regular expression abstract syntax trees(over an alphabet Σ) consists of
◮ binary operators Union and Concatr1|r2 r1r2
◮ unary operator Star r∗
◮ nullary operators (constants) Null, Empty and Syma
(one for each a ∈ Σ). ǫ ∅ a
![Page 179: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/179.jpg)
(i) Base cases: show that {a}, {ε} and ∅ are regular languages.
(ii) Induction step for r1|r2: given NFAεs M1 and M2, constructan NFAε Union(M1, M2) satisfying
L(Union(M1, M2)) = {u | u ∈ L(M1)∨ u ∈ L(M2)}Thus if L(r1) = L(M1) and L(r2) = L(M2), then L(r1|r2) = L(Union(M1, M2)).
![Page 180: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/180.jpg)
(i) Base cases: show that {a}, {ε} and ∅ are regular languages.
(ii) Induction step for r1|r2: given NFAεs M1 and M2, constructan NFAε Union(M1, M2) satisfying
L(Union(M1, M2)) = {u | u ∈ L(M1)∨ u ∈ L(M2)}Thus if L(r1) = L(M1) and L(r2) = L(M2), then L(r1|r2) = L(Union(M1, M2)).
(iii) Induction step for r1r2: given NFAεs M1 and M2, construct anNFAε Concat(M1, M2) satisfying
L(Concat(M1, M2)) = {u1u2 | u1 ∈ L(M1) &
u2 ∈ L(M2)}Thus L(r1r2) = L(Concat(M1, M2)) when L(r1) = L(M1) and L(r2) = L(M2).
![Page 181: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/181.jpg)
(i) Base cases: show that {a}, {ε} and ∅ are regular languages.
(ii) Induction step for r1|r2: given NFAεs M1 and M2, constructan NFAε Union(M1, M2) satisfying
L(Union(M1, M2)) = {u | u ∈ L(M1)∨ u ∈ L(M2)}Thus if L(r1) = L(M1) and L(r2) = L(M2), then L(r1|r2) = L(Union(M1, M2)).
(iii) Induction step for r1r2: given NFAεs M1 and M2, construct anNFAε Concat(M1, M2) satisfying
L(Concat(M1, M2)) = {u1u2 | u1 ∈ L(M1) &
u2 ∈ L(M2)}Thus L(r1r2) = L(Concat(M1, M2)) when L(r1) = L(M1) and L(r2) = L(M2).
(iv) Induction step for r∗: given NFAε M, construct an NFAε
Star(M) satisfying
L(Star(M)) = {u1u2 . . . un | n ≥ 0 and each ui ∈ L(M)}Thus L(r∗) = L(Star(M)) when L(r) = L(M).
![Page 182: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/182.jpg)
NFAs for regular expressions a, ǫ, ∅
q0a q1 just accepts the one-symbol string a
q0 just accepts the null string, ε
q0 accepts no strings
![Page 183: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/183.jpg)
Union(M1, M2)
s1 M1
q0
ε
εs2 M2
accepting states = union of accepting states of M1 and M2
![Page 184: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/184.jpg)
For example,
if Ma = a
and Mb = b
then Union(Ma, Mb) =
aε
ε
b
![Page 185: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/185.jpg)
In what follows, whenever we have to deal withtwo machines, say M1 and M2 together, weassume that their states are disjoint.
If they were not, we could just rename thestates of one machine to make this so.
Also assume that for r1 and r2 there aremachines M1 and M2 such that L(r1) = L(M1)and L(r2) = L(M2)
![Page 186: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/186.jpg)
Construction for Union(r1, r2)
Assume there are two machines M1 and M2
with L(r1) = L(M1) and L(r2) = L(M2)
![Page 187: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/187.jpg)
Construction for Union(r1, r2)
Assume there are two machines M1 and M2
with L(r1) = L(M1) and L(r2) = L(M2)
States of new machine M = Union(M1, M2) areall the states in M1 and all the states in M2
together with a new start state withεtransitions to each of the (old) start statesof M1 and M2.
![Page 188: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/188.jpg)
Construction for Union(r1, r2)
Assume there are two machines M1 and M2
with L(r1) = L(M1) and L(r2) = L(M2)
States of new machine M = Union(M1, M2) areall the states in M1 and all the states in M2
together with a new start state withεtransitions to each of the (old) start statesof M1 and M2.
Accept states of M are the all accept states inM1 and all accept states in M2.
![Page 189: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/189.jpg)
Construction for Union(r1, r2)
Assume there are two machines M1 and M2
with L(r1) = L(M1) and L(r2) = L(M2)
States of new machine M = Union(M1, M2) areall the states in M1 and all the states in M2
together with a new start state withεtransitions to each of the (old) start statesof M1 and M2.
Accept states of M are the all accept states inM1 and all accept states in M2.
The transitions of M are all transitions in M1
and M2 along with the two εtransitions fromthe new start state
![Page 190: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/190.jpg)
M accepts any strings that M1 accepts:
if u ∈ L(M1) then s1u⇒ q1 where s1 is start
state and q1 an accept state of M1 respectively.
![Page 191: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/191.jpg)
M accepts any strings that M1 accepts:
if u ∈ L(M1) then s1u⇒ q1 where s1 is start
state and q1 an accept state of M1 respectively.
but then in M, su⇒ q1, where s is our new
start state since sε−→ s1.
![Page 192: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/192.jpg)
M accepts any strings that M1 accepts:
if u ∈ L(M1) then s1u⇒ q1 where s1 is start
state and q1 an accept state of M1 respectively.
but then in M, su⇒ q1, where s is our new
start state since sε−→ s1.
so u ∈ L(M). Similar argument for Maccepting any string that M2 accepts
![Page 193: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/193.jpg)
M accepts any strings that M1 accepts:
if u ∈ L(M1) then s1u⇒ q1 where s1 is start
state and q1 an accept state of M1 respectively.
but then in M, su⇒ q1, where s is our new
start state since sε−→ s1.
so u ∈ L(M). Similar argument for Maccepting any string that M2 accepts
so (L(M1)∪ L(M2)) ⊆ L(Union(M1, M2))
![Page 194: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/194.jpg)
Can M accept anything more?
![Page 195: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/195.jpg)
Can M accept anything more?
The only way "out of" s, the start state of M,is either to the start state of M1 or the startstate of M2
![Page 196: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/196.jpg)
Can M accept anything more?
The only way "out of" s, the start state of M,is either to the start state of M1 or the startstate of M2
So no, L(M) = (L(M1)∪ L(M2))
![Page 197: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/197.jpg)
Concat(M1, M2)
s1 M1ε s2 M2
accepting states are those of M2
![Page 198: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/198.jpg)
For example,
if M1 =a
ε
ε
ε
ε b
ε
and M2 =a
then Concat(M1, M2) =a
ε
a ε ε
ε
ε b
ε
![Page 199: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/199.jpg)
Construction for M = Concat(M1, M2)
Make an εtransition from every accept statein M1 to the start state of M2.
Start state of M is the start state of M1;accept states of M are the accept states of M2
![Page 200: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/200.jpg)
Star(M)
q0ε s M
ε
the only accepting state of Star(M) is q0
(N.B. doing without q0 by just looping back to sand making that accepting won’t work – see exercises)
![Page 201: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/201.jpg)
For example,
if M =
aε
ε
b
then Star(M) =a
ε
ε
ε
ε b
ε
![Page 202: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/202.jpg)
Construction for Star(r1), M = Star(M1)
Create a new state, say s which will be thestart state, and the only accepting state of M .
![Page 203: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/203.jpg)
Construction for Star(r1), M = Star(M1)
Create a new state, say s which will be thestart state, and the only accepting state of M .
The transitions of M are all the transitions ofM1 together with an εtransition from s tothe (old) start state of M1 and εtransitionsfrom every (old) accepting state of M1 to s.
![Page 204: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/204.jpg)
Construction for Star(r1), M = Star(M1)
Create a new state, say s which will be thestart state, and the only accepting state of M .
The transitions of M are all the transitions ofM1 together with an εtransition from s tothe (old) start state of M1 and εtransitionsfrom every (old) accepting state of M1 to s.
Clearly, M accepts ε since s, the start state, isalso an accepting state
![Page 205: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/205.jpg)
Construction for Star(r1), M = Star(M1)
Create a new state, say s which will be thestart state, and the only accepting state of M .
The transitions of M are all the transitions ofM1 together with an εtransition from s tothe (old) start state of M1 and εtransitionsfrom every (old) accepting state of M1 to s.
Clearly, M accepts ε since s, the start state, isalso an accepting state
nonempty strings accepted by M have to beformed of components, each of which isaccepted by M1
![Page 206: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/206.jpg)
Construction for Star(r1), M = Star(M1)
Create a new state, say s which will be thestart state, and the only accepting state of M .
The transitions of M are all the transitions ofM1 together with an εtransition from s tothe (old) start state of M1 and εtransitionsfrom every (old) accepting state of M1 to s.
Clearly, M accepts ε since s, the start state, isalso an accepting state
nonempty strings accepted by M have to beformed of components, each of which isaccepted by M1
so L(M) = L(r∗1 )
![Page 207: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/207.jpg)
(i) Base cases: show that {a}, {ε} and ∅ are regular languages.
(ii) Induction step for r1|r2: given NFAεs M1 and M2, constructan NFAε Union(M1, M2) satisfying
L(Union(M1, M2)) = {u | u ∈ L(M1)∨ u ∈ L(M2)}Thus if L(r1) = L(M1) and L(r2) = L(M2), then L(r1|r2) = L(Union(M1, M2)).
(iii) Induction step for r1r2: given NFAεs M1 and M2, construct anNFAε Concat(M1, M2) satisfying
L(Concat(M1, M2)) = {u1u2 | u1 ∈ L(M1) &
u2 ∈ L(M2)}Thus L(r1r2) = L(Concat(M1, M2)) when L(r1) = L(M1) and L(r2) = L(M2).
(iv) Induction step for r∗: given NFAε M, construct an NFAε
Star(M) satisfying
L(Star(M)) = {u1u2 . . . un | n ≥ 0 and each ui ∈ L(M)}Thus L(r∗) = L(Star(M)) when L(r) = L(M).
![Page 208: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/208.jpg)
Example
Regular expression (a|b)∗a
whose abstract syntax tree is
Concat
Star
Union
Syma Symb
Syma
is mapped to the NFAε Concat(Star(Union(Ma, Mb)), Ma) =
a
ε
a ε ε
ε
ε b
ε
![Page 209: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/209.jpg)
Some questions
(a) Is there an algorithm which, given a string u and aregular expression r, computes whether or not umatches r?
(b) In formulating the definition of regular expressions,have we missed out some practically useful notions ofpattern?
(c) Is there an algorithm which, given two regularexpressions r and s, computes whether or not they areequivalent, in the sense that L(r) and L(s) areequal sets?
(d) Is every language (subset of Σ∗) of the form L(r) for
some r?
![Page 210: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/210.jpg)
Decidability of matching
We now have a positive answer to question (a). Givenstring u and regular expression r:
◮ construct an NFAε M satisfying L(M) = L(r);
◮ in PM (the DFA obtained by the subset construction ) carry outthe sequence of transitions corresponding to u from the startstate to some state q (because PM is deterministic, there is aunique such transition sequence);
◮ check whether q is accepting or not: if it is, thenu ∈ L(PM) = L(M) = L(r), so u matches r; otherwiseu /∈ L(PM) = L(M) = L(r), so u does not match r.
(The subset construction produces an exponential blow-up of the number of states: PM has 2n
states if M has n. This makes the method described above potentially inefficient – more efficientalgorithms exist that don’t construct the whole of PM.)
![Page 211: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/211.jpg)
Exponential Blowup
if NFAε M has n states then the DFA made bysubset construction, PM has 2n states, since itsstates are the members of the powerset of M .
Minimisation of states in PM by:
![Page 212: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/212.jpg)
Exponential Blowup
if NFAε M has n states then the DFA made bysubset construction, PM has 2n states, since itsstates are the members of the powerset of M .
Minimisation of states in PM by:
◮ removing all states which are not reachable(by any string) from the start state.
![Page 213: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/213.jpg)
Exponential Blowup
if NFAε M has n states then the DFA made bysubset construction, PM has 2n states, since itsstates are the members of the powerset of M .
Minimisation of states in PM by:
◮ removing all states which are not reachable(by any string) from the start state.
◮ merge all compatible states. Two states arecompatible if (i) they are both accepting orboth nonaccepting; and (ii) their transitionfunctions are the same.
![Page 214: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/214.jpg)
Exponential Blowup
if NFAε M has n states then the DFA made bysubset construction, PM has 2n states, since itsstates are the members of the powerset of M .
Minimisation of states in PM by:
◮ removing all states which are not reachable(by any string) from the start state.
◮ merge all compatible states. Two states arecompatible if (i) they are both accepting orboth nonaccepting; and (ii) their transitionfunctions are the same.
◮ Update transition functions to takeaccount of merged states. Repeat.
![Page 215: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/215.jpg)
Kleene’s Theorem
Definition. A language is regular iff it is equal to L(M),the set of strings accepted by some deterministic finiteautomaton M.
Theorem.
(a) For any regular expression r, the set L(r) of stringsmatching r is a regular language.
(b) Conversely, every regular language is the form L(r) forsome regular expression r.
![Page 216: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/216.jpg)
Kleene’s Theorem
Definition. A language is regular iff it is equal to L(M),the set of strings accepted by some deterministic finiteautomaton M.
Theorem.
(a) For any regular expression r, the set L(r) of stringsmatching r is a regular language.
(b) Conversely, every regular language is the form L(r) forsome regular expression r.
The not so fun side of Kleene’s Theorem
![Page 217: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/217.jpg)
Example of a regular language
Recall the example DFA we used earlier:
M , q0a
b
q1
b
a q2
b
a q3
a
b
In this case it’s not hard to see that L(M) = L(r) for
r = (a|b)∗aaa(a|b)∗
![Page 218: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/218.jpg)
Example
M , 1
a0
ba
2
b
a
L(M) = L(r) for which regular expression r?
Guess: r = a∗|a∗b(ab)∗aaa∗
WRONG!since baabaa ∈ L(M)but baabaa 6∈ L(a∗|a∗b(ab)∗aaa∗)
We need an algorithm for constructing a suitable r for each M(plus a proof that it is correct).
![Page 219: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/219.jpg)
Lemma. Given an NFA M = (Q, Σ, ∆, s, F), for eachsubset S ⊆ Q and each pair of states q, q′ ∈ Q, there is aregular expression rS
q,q′ satisfying
L(rSq,q′) = {u ∈ Σ
∗ | qu−→∗ q′ in M with all inter-
mediate states of the sequenceof transitions in S}.
Hence if the subset F of accepting states has k distinct elements,q1, . . . , qk say, then L(M) = L(r) with r , r1| · · · |rk where
ri = rQs,qi
(i = 1, . . . , k)
(in case k = 0, we take r to be the regular expression ∅).
![Page 220: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/220.jpg)
Prove this Lemma by induction on # ofelements in SAlso take care to examine case where q = q′ !
Base case S = ∅
Given states q, q′ ∈ M, if
qa−→ q′
holds for just a = a1, a2, . . . , ak then can define
r∅
q,q′ ,
{a = a1|a2| . . . |ak if q 6= q′
a = a1|a2| . . . |ak|ǫ if q = q′
![Page 221: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/221.jpg)
Induction Step:
◮ S has n + 1 elements.
![Page 222: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/222.jpg)
Induction Step:
◮ S has n + 1 elements.
◮ pick some q0 ∈ S
![Page 223: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/223.jpg)
Induction Step:
◮ S has n + 1 elements.
◮ pick some q0 ∈ S
◮ consider S− = S \ {q0} (S without the stateq0)
![Page 224: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/224.jpg)
Induction Step:
◮ S has n + 1 elements.
◮ pick some q0 ∈ S
◮ consider S− = S \ {q0} (S without the stateq0)
◮ can apply induction hypoth to S− since S− hasn elements
![Page 225: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/225.jpg)
Induction Step:
◮ S has n + 1 elements.
◮ pick some q0 ∈ S
◮ consider S− = S \ {q0} (S without the stateq0)
◮ can apply induction hypoth to S− since S− hasn elements
Can we express rSq,q′ in terms of things only
depending on S−?
![Page 226: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/226.jpg)
What’s in rSq,q′ ?
◮ we might be able to get from q to q′
through S avoiding q0, and
![Page 227: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/227.jpg)
What’s in rSq,q′ ?
◮ we might be able to get from q to q′
through S avoiding q0, and
◮ we might be able to get from q to q0, thenfrom q0 back to itself an arbitrary numberof times, then to q′
![Page 228: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/228.jpg)
What’s in rSq,q′ ?
◮ we might be able to get from q to q′
through S avoiding q0, and
◮ we might be able to get from q to q0, thenfrom q0 back to itself an arbitrary numberof times, then to q′
For the first of these we have rS−
q,q′ by
hypothesis. (If there is no path, this will be ∅)
![Page 229: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/229.jpg)
What’s in rSq,q′ ?
◮ we might be able to get from q to q′
through S avoiding q0, and
◮ we might be able to get from q to q0, thenfrom q0 back to itself an arbitrary numberof times, then to q′
For the first of these we have rS−
q,q′ by
hypothesis. (If there is no path, this will be ∅)
For the second we have rS−q,q0
[rS−q0,q0
]∗ rS−
q0,q′
![Page 230: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/230.jpg)
rSq,q′ = rS−
q,q′ | (rS−q,q0
[rS−q0,q0
]∗rS−
q0,q′)
q
rS−
q,q′
rS−q,q0
q′
q0
rS−q0,q0 rS−
q0,q′
all transitions in S− q0 excluded from S−
q and q′ can be in or out of S−
![Page 231: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/231.jpg)
An Example
Demonstrates don’t always have to followinduction to bitter end (but when in doubt...)
Construction works backwards to theinduction; we start with all the states andremove one at a time.
We get to choose the state to remove ineach step.
Strategy: choose a state that disconnects theautomaton as much as possible
![Page 232: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/232.jpg)
M , 1
a0
ba
2
b
a
Looking for r{0,1,2}0,0
![Page 233: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/233.jpg)
M , 1
a0
ba
2
b
a
Looking for r{0,1,2}0,0
By direct inspection we have:
r{0}i,j 0 1 2
0
1 ∅ ε a2 aa∗ a∗b ε
r{0,2}i,j 0 1 2
0 a∗ a∗b1
2
(we don’t need the unfilled entries in the tables)
![Page 234: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/234.jpg)
We want r{0,1,2}0,0
![Page 235: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/235.jpg)
We want r{0,1,2}0,0
Remove 1 from {0, 1, 2}
![Page 236: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/236.jpg)
We want r{0,1,2}0,0
Remove 1 from {0, 1, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
![Page 237: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/237.jpg)
We want r{0,1,2}0,0
Remove 1 from {0, 1, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
a∗ a∗b
![Page 238: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/238.jpg)
We want r{0,1,2}0,0
Remove 1 from {0, 1, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [r{0,2}1,1 ]∗ r
{0,2}1,0, )
![Page 239: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/239.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [r{0,2}1,1 ]∗ r
{0,2}1,0, )
r{0,2}1,1 , r
{0}1,1 | (r
{0}0,2 [r
{0}2,2 ]∗ r
{0}2,1 )
![Page 240: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/240.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [r{0,2}1,1 ]∗ r
{0,2}1,0, )
r{0,2}1,1 , r
{0}1,1 | (r
{0}0,2 [r
{0}2,2 ]∗ r
{0}2,1 )
= ε | (a [ε]∗ a∗b)
![Page 241: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/241.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [r{0,2}1,1 ]∗ r
{0,2}1,0, )
r{0,2}1,1 , r
{0}1,1 | (r
{0}0,2 [r
{0}2,2 ]∗ r
{0}2,1 )
= ε | (a [ε]∗ a∗b)= ε | (aa∗b)
![Page 242: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/242.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [ε|(aa∗b)]∗ r{0,2}1,0 )
r{0,2}1,1 , r
{0}1,1 | (r
{0}0,2 [r
{0}2,2 ]∗ r
{0}2,1 )
= ε | (a [ε]∗ a∗b)= ε | (aa∗b)
![Page 243: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/243.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [ε|(aa∗b)]∗ r{0,2}1,0 )
![Page 244: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/244.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [ε|(aa∗b)]∗ r{0,2}1,0 )
r{0,2}1,0 , r
{0}1,0 | (r
{0}1,2 [r
{0}2,2 ]∗ r
{0}2,0 )
![Page 245: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/245.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [ε|(aa∗b)]∗ r{0,2}1,0 )
r{0,2}1,0 , r
{0}1,0 | (r
{0}1,2 [r
{0}2,2 ]∗ r
{0}2,0 )
= ∅ | a ∗ (ǫ)∗ aa∗
![Page 246: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/246.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [ε|(aa∗b)]∗ r{0,2}1,0 )
r{0,2}1,0 , r
{0}1,0 | (r
{0}1,2 [r
{0}2,2 ]∗ r
{0}2,0 )
= ∅ | a ∗ (ǫ)∗ aa∗
= aaa∗
![Page 247: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/247.jpg)
We want r{0,1,2}0,0
Remove 2 from {0, 2}
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [ε|(aa∗b)]∗ aaa∗)
r{0,2}1,0 , r
{0}1,0 | (r
{0}1,2 [r
{0}2,2 ]∗ r
{0}2,0 )
= ∅ | a ∗ (ǫ)∗ aa∗
= aaa∗
![Page 248: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/248.jpg)
We want r{0,1,2}0,0
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [ε|(aa ∗ b)]∗ aaa∗)
![Page 249: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/249.jpg)
We want r{0,1,2}0,0
r{0,1,2}0,0 , r
{0,2}0,0 | (r
{0,2}0,1 [r
{0,2}1,1 ]∗ r
{0,2}1,0 )
= a∗ | (a∗b [ε|(aa ∗ b)]∗ aaa∗)
Which might have a simpler form...
![Page 250: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/250.jpg)
Some questions
(a) Is there an algorithm which, given a string u and aregular expression r, computes whether or not umatches r?
(b) In formulating the definition of regular expressions,have we missed out some practically useful notions ofpattern?
(c) Is there an algorithm which, given two regularexpressions r and s, computes whether or not they areequivalent, in the sense that L(r) and L(s) areequal sets?
(d) Is every language (subset of Σ∗) of the form L(r) for
some r?
![Page 251: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/251.jpg)
Not(M)
Given DFA M = (Q, Σ, δ, s, F),then Not(M) is the DFA with
◮ set of states = Q◮ input alphabet = Σ
◮ next-state function = δ
◮ start state = s◮ accepting states = {q ∈ Q | q 6∈ F}.
(i.e. we just reverse the role of accepting/non-accepting and leave everything else the same)
Because M is a deterministic finite automaton, then u is accepted byNot(M) iff it is not accepted by M:
L(Not(M)) = {u ∈ Σ∗ | u 6∈ L(M)}
![Page 252: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/252.jpg)
So regular languages are closed undercomplementation:
◮ given a regular expression r
L(∼ r) = {u ∈ Σ∗|u /∈ L(r)}
![Page 253: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/253.jpg)
So regular languages are closed undercomplementation:
◮ given a regular expression r
◮ build DFA M such that L(M) = L(r) (Kleene(a))
L(∼ r) = {u ∈ Σ∗|u /∈ L(r)}
![Page 254: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/254.jpg)
So regular languages are closed undercomplementation:
◮ given a regular expression r
◮ build DFA M such that L(M) = L(r) (Kleene(a))
◮ build Not(M) from M (just defined)
L(∼ r) = {u ∈ Σ∗|u /∈ L(r)}
![Page 255: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/255.jpg)
So regular languages are closed undercomplementation:
◮ given a regular expression r
◮ build DFA M such that L(M) = L(r) (Kleene(a))
◮ build Not(M) from M (just defined)
◮ find ∼ r such that L(∼ r) = L(Not(M))(Kleene (b))
L(∼ r) = {u ∈ Σ∗|u /∈ L(r)}
![Page 256: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/256.jpg)
Regular languages areclosed under intersection
Theorem. If L1 and L2 are a regular languages over analphabet Σ, then their intersectionL1 ∩ L2 = {u ∈ Σ
∗ | u ∈ L1 & u ∈ L2} is also regular.
![Page 257: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/257.jpg)
Regular languages areclosed under intersection
Theorem. If L1 and L2 are a regular languages over analphabet Σ, then their intersectionL1 ∩ L2 = {u ∈ Σ
∗ | u ∈ L1 & u ∈ L2} is also regular.
Proof. Note that L1 ∩ L2 = Σ∗ \ ((Σ
∗ \ L1)∪ (Σ∗ \ L2))
(cf. de Morgan’s Law: p & q = ¬(¬p ∨¬q)).
![Page 258: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/258.jpg)
Regular languages areclosed under intersection
Theorem. If L1 and L2 are a regular languages over analphabet Σ, then their intersectionL1 ∩ L2 = {u ∈ Σ
∗ | u ∈ L1 & u ∈ L2} is also regular.
Proof. Note that L1 ∩ L2 = Σ∗ \ ((Σ
∗ \ L1)∪ (Σ∗ \ L2))
(cf. de Morgan’s Law: p & q = ¬(¬p ∨¬q)).
So if L1 = L(M1) and L2 = L(M2) for DFAs M1 and M2,
![Page 259: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/259.jpg)
Regular languages areclosed under intersection
Theorem. If L1 and L2 are a regular languages over analphabet Σ, then their intersectionL1 ∩ L2 = {u ∈ Σ
∗ | u ∈ L1 & u ∈ L2} is also regular.
Proof. Note that L1 ∩ L2 = Σ∗ \ ((Σ
∗ \ L1)∪ (Σ∗ \ L2))
(cf. de Morgan’s Law: p & q = ¬(¬p ∨¬q)).
So if L1 = L(M1) and L2 = L(M2) for DFAs M1 and M2,then L1 ∩ L2 = L(Not(PM)), PM subset-constructed from M,
![Page 260: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/260.jpg)
Regular languages areclosed under intersection
Theorem. If L1 and L2 are a regular languages over analphabet Σ, then their intersectionL1 ∩ L2 = {u ∈ Σ
∗ | u ∈ L1 & u ∈ L2} is also regular.
Proof. Note that L1 ∩ L2 = Σ∗ \ ((Σ
∗ \ L1)∪ (Σ∗ \ L2))
(cf. de Morgan’s Law: p & q = ¬(¬p ∨¬q)).
So if L1 = L(M1) and L2 = L(M2) for DFAs M1 and M2,then L1 ∩ L2 = L(Not(PM)), PM subset-constructed from M,where M is the NFAε Union(Not(M1), Not(M2)). �
![Page 261: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/261.jpg)
Regular languages areclosed under intersection
Theorem. If L1 and L2 are a regular languages over analphabet Σ, then their intersectionL1 ∩ L2 = {u ∈ Σ
∗ | u ∈ L1 & u ∈ L2} is also regular.
Proof. Note that L1 ∩ L2 = Σ∗ \ ((Σ
∗ \ L1)∪ (Σ∗ \ L2))
(cf. de Morgan’s Law: p & q = ¬(¬p ∨¬q)).
So if L1 = L(M1) and L2 = L(M2) for DFAs M1 and M2,then L1 ∩ L2 = L(Not(PM)), PM subset-constructed from M,where M is the NFAε Union(Not(M1), Not(M2)). �
[It is not hard to directly construct a DFA And(M1, M2) from M1 and M2 such thatL(And(M1, M2)) = L(M1)∩ L(M2) – see Exercise 4.7.]
![Page 262: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/262.jpg)
Regular languages areclosed under intersection
Corollary: given regular expressions r1 and r2,there is aregular expression, which we write as r1 & r2, such that
a string u matches r1 & r2 iff it matches both r1
and r2.
Proof. By Kleene (a), L(r1) and L(r2) are regular languages andhence by the theorem, so is L(r1)∩ L(r2). Then we can useKleene (b) to construct a regular expression r1 & r2 withL(r1 & r2) = L(r1)∩ L(r2). �
![Page 263: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/263.jpg)
Some questions
(a) Is there an algorithm which, given a string u and aregular expression r, computes whether or not umatches r?
(b) In formulating the definition of regular expressions,have we missed out some practically useful notions ofpattern?
(c) Is there an algorithm which, given two regularexpressions r and s, computes whether or not they areequivalent, in the sense that L(r) and L(s) areequal sets?
(d) Is every language (subset of Σ∗) of the form L(r) for
some r?
![Page 264: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/264.jpg)
Equivalent regular expressions
Definition. Two regular expressions r and s are said to beequivalent if L(r) = L(s), that is, they determineexactly the same sets of strings via matching.
For example, are b∗a(b∗a)∗ and (a|b)∗a equivalent?
![Page 265: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/265.jpg)
Equivalent regular expressions
Definition. Two regular expressions r and s are said to beequivalent if L(r) = L(s), that is, they determineexactly the same sets of strings via matching.
For example, are b∗a(b∗a)∗ and (a|b)∗a equivalent?
Answer: yes (Exercise 2.3)
How can we decide all such questions?
![Page 266: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/266.jpg)
Note that L(r) = L(s)
iff L(r) ⊆ L(s) and L(s) ⊆ L(r)
![Page 267: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/267.jpg)
Note that L(r) = L(s)
iff L(r) ⊆ L(s) and L(s) ⊆ L(r)iff (Σ
∗ \ L(r))∩ L(s) = ∅ = (Σ∗ \ L(s))∩ L(r)
![Page 268: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/268.jpg)
Note that L(r) = L(s)
iff L(r) ⊆ L(s) and L(s) ⊆ L(r)iff (Σ
∗ \ L(r))∩ L(s) = ∅ = (Σ∗ \ L(s))∩ L(r)
iff L((∼r) & s) = ∅ = L((∼s) & r)
![Page 269: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/269.jpg)
Note that L(r) = L(s)
iff L(r) ⊆ L(s) and L(s) ⊆ L(r)iff (Σ
∗ \ L(r))∩ L(s) = ∅ = (Σ∗ \ L(s))∩ L(r)
iff L((∼r) & s) = ∅ = L((∼s) & r)iff L(M) = ∅ = L(N)
where M and N are DFAs accepting the sets of strings matched by theregular expressions (∼r) & s and (∼s) & r respectively.
![Page 270: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/270.jpg)
Note that L(r) = L(s)
iff L(r) ⊆ L(s) and L(s) ⊆ L(r)iff (Σ
∗ \ L(r))∩ L(s) = ∅ = (Σ∗ \ L(s))∩ L(r)
iff L((∼r) & s) = ∅ = L((∼s) & r)iff L(M) = ∅ = L(N)
where M and N are DFAs accepting the sets of strings matched by theregular expressions (∼r) & s and (∼s) & r respectively.
So to decide equivalence for regular expressions it suffices to
check, given any DFA M, whether or not it accepts any string at all.
![Page 271: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/271.jpg)
Note that L(r) = L(s)
iff L(r) ⊆ L(s) and L(s) ⊆ L(r)iff (Σ
∗ \ L(r))∩ L(s) = ∅ = (Σ∗ \ L(s))∩ L(r)
iff L((∼r) & s) = ∅ = L((∼s) & r)iff L(M) = ∅ = L(N)
where M and N are DFAs accepting the sets of strings matched by theregular expressions (∼r) & s and (∼s) & r respectively.
So to decide equivalence for regular expressions it suffices to
check, given any DFA M, whether or not it accepts any string at all.
Note that the number of transitions needed to reach an accepting state in a finiteautomaton is bounded by the number of states (we can remove loops from longerpaths). So we only have to check finitely many strings to see whether or not L(M)is empty.
![Page 272: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/272.jpg)
That gives us our answer to question (c)(which is yes).
Now onto the last of our questions...
![Page 273: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/273.jpg)
The Pumping Lemma
![Page 274: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/274.jpg)
Some questions
(a) Is there an algorithm which, given a string u and aregular expression r, computes whether or not umatches r?
(b) In formulating the definition of regular expressions,have we missed out some practically useful notions ofpattern?
(c) Is there an algorithm which, given two regularexpressions r and s, computes whether or not they areequivalent, in the sense that L(r) and L(s) areequal sets?
(d) Is every language (subset of Σ∗) of the form L(r) for
some r?
![Page 275: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/275.jpg)
Examples of languages that arenot regular
◮ The set of strings over {(, ), a, b, . . . , z} in which theparentheses ‘(’ and ‘)’ occur well-nested.
◮ The set of strings over {a, b, . . . , z} which arepalindromes, i.e. which read the same backwards asforwards.
◮ {anbn | n ≥ 0}
![Page 276: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/276.jpg)
The Pumping Lemma
For every regular language L, there is a number ℓ ≥ 1
satisfying the pumping lemma property:
All w ∈ L with |w| ≥ ℓ can be expressed as aconcatenation of three strings, w = u1vu2, where u1, vand u2 satisfy:
◮ |v| ≥ 1 (i.e. v 6= ε)
![Page 277: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/277.jpg)
The Pumping Lemma
For every regular language L, there is a number ℓ ≥ 1
satisfying the pumping lemma property:
All w ∈ L with |w| ≥ ℓ can be expressed as aconcatenation of three strings, w = u1vu2, where u1, vand u2 satisfy:
◮ |v| ≥ 1 (i.e. v 6= ε)
◮ |u1v| ≤ ℓ
![Page 278: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/278.jpg)
The Pumping Lemma
For every regular language L, there is a number ℓ ≥ 1
satisfying the pumping lemma property:
All w ∈ L with |w| ≥ ℓ can be expressed as aconcatenation of three strings, w = u1vu2, where u1, vand u2 satisfy:
◮ |v| ≥ 1 (i.e. v 6= ε)
◮ |u1v| ≤ ℓ
◮ for all n ≥ 0, u1vnu2 ∈ L(i.e. u1u2 ∈ L, u1vu2 ∈ L [but we knew that anyway],
u1vvu2 ∈ L, u1vvvu2 ∈ L, etc.)
![Page 279: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/279.jpg)
The Pumping Lemma
For every regular language L, there is a number ℓ ≥ 1
satisfying the pumping lemma property:
All w ∈ L with |w| ≥ ℓ can be expressed as aconcatenation of three strings, w = u1vu2, where u1, vand u2 satisfy:
◮ |v| ≥ 1 (i.e. v 6= ε)
◮ |u1v| ≤ ℓ
◮ for all n ≥ 0, u1vnu2 ∈ L(i.e. u1u2 ∈ L, u1vu2 ∈ L [but we knew that anyway],
u1vvu2 ∈ L, u1vvvu2 ∈ L, etc.)
Note similarity to construction in Kleene (b)
![Page 280: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/280.jpg)
Suppose L = L(M) for a DFA M = (Q, Σ, δ, s, F).Taking ℓ to be the number of elements in Q, if n ≥ ℓ,then in
s = q0
a1−→ q1
a2−→ q2 · · ·aℓ−→ qℓ
︸ ︷︷ ︸
ℓ+1 states
· · ·an−→ qn ∈ F
q0, . . . , qℓ can’t all be distinct states. So qi = qj for some0 ≤ i < j ≤ ℓ. So the above transition sequence looks like
s = q0u1 ∗qi
v
∗= qj
u2 ∗qn ∈ F
where
u1 , a1 . . . ai v , ai+1 . . . aj u2 , aj+1 . . . an
![Page 281: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/281.jpg)
How to use the Pumping Lemmato prove that a language L
is not regular
For each ℓ ≥ 1, find some w ∈ L of length ≥ ℓ so that
no matter how w is split into three, w = u1vu2,with |u1v| ≤ ℓ and |v| ≥ 1, there is some n ≥ 0
for which u1vnu2 is not in L
(†)
![Page 282: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/282.jpg)
Examples
None of the following three languages are regular:
(i) L1 , {anbn | n ≥ 0}
![Page 283: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/283.jpg)
L1 = {anbn | n ≥ 0}
For each ℓ ≥ 1, take w = aℓbℓ ∈ L1
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1, then forsome r and s:
◮ u1 = ar
![Page 284: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/284.jpg)
L1 = {anbn | n ≥ 0}
For each ℓ ≥ 1, take w = aℓbℓ ∈ L1
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1, then forsome r and s:
◮ u1 = ar
◮ v = as, with r + s ≤ ℓ and s ≥ 1
![Page 285: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/285.jpg)
L1 = {anbn | n ≥ 0}
For each ℓ ≥ 1, take w = aℓbℓ ∈ L1
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1, then forsome r and s:
◮ u1 = ar
◮ v = as, with r + s ≤ ℓ and s ≥ 1
◮ u2 = al−r−sbℓ
![Page 286: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/286.jpg)
L1 = {anbn | n ≥ 0}
For each ℓ ≥ 1, take w = aℓbℓ ∈ L1
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1, then forsome r and s:
◮ u1 = ar
◮ v = as, with r + s ≤ ℓ and s ≥ 1
◮ u2 = al−r−sbℓ
so u1v0u2 =
![Page 287: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/287.jpg)
L1 = {anbn | n ≥ 0}
For each ℓ ≥ 1, take w = aℓbℓ ∈ L1
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1, then forsome r and s:
◮ u1 = ar
◮ v = as, with r + s ≤ ℓ and s ≥ 1
◮ u2 = al−r−sbℓ
so u1v0u2 = ar ǫ aℓ−r−sbℓ =
![Page 288: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/288.jpg)
L1 = {anbn | n ≥ 0}
For each ℓ ≥ 1, take w = aℓbℓ ∈ L1
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1, then forsome r and s:
◮ u1 = ar
◮ v = as, with r + s ≤ ℓ and s ≥ 1
◮ u2 = al−r−sbℓ
so u1v0u2 = ar ǫ aℓ−r−sbℓ = aℓ−sbℓ
![Page 289: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/289.jpg)
L1 = {anbn | n ≥ 0}
For each ℓ ≥ 1, take w = aℓbℓ ∈ L1
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1, then forsome r and s:
◮ u1 = ar
◮ v = as, with r + s ≤ ℓ and s ≥ 1
◮ u2 = al−r−sbℓ
so u1v0u2 = ar ǫ aℓ−r−sbℓ = aℓ−sbℓ
But aℓ−sbℓ 6∈ L1
![Page 290: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/290.jpg)
L1 = {anbn | n ≥ 0}
For each ℓ ≥ 1, take w = aℓbℓ ∈ L1
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1, then forsome r and s:
◮ u1 = ar
◮ v = as, with r + s ≤ ℓ and s ≥ 1
◮ u2 = al−r−sbℓ
so u1v0u2 = ar ǫ aℓ−r−sbℓ = aℓ−sbℓ
But aℓ−sbℓ 6∈ L1 , so, by the Pumping Lemma, L1 isnot a regular language
![Page 291: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/291.jpg)
Examples
None of the following three languages are regular:
(i) L1 , {anbn | n ≥ 0}[For each ℓ ≥ 1, aℓbℓ ∈ L1 is of length ≥ ℓ and has property (†).]
![Page 292: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/292.jpg)
Examples
None of the following three languages are regular:
(i) L1 , {anbn | n ≥ 0}[For each ℓ ≥ 1, aℓbℓ ∈ L1 is of length ≥ ℓ and has property (†).]
(ii) L2 , {w ∈ {a, b}∗ | w a palindrome}
![Page 293: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/293.jpg)
Examples
None of the following three languages are regular:
(i) L1 , {anbn | n ≥ 0}[For each ℓ ≥ 1, aℓbℓ ∈ L1 is of length ≥ ℓ and has property (†).]
(ii) L2 , {w ∈ {a, b}∗ | w a palindrome}[For each ℓ ≥ 1, aℓbaℓ ∈ L1 is of length ≥ ℓ and has property (†).]
![Page 294: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/294.jpg)
Examples
None of the following three languages are regular:
(i) L1 , {anbn | n ≥ 0}[For each ℓ ≥ 1, aℓbℓ ∈ L1 is of length ≥ ℓ and has property (†).]
(ii) L2 , {w ∈ {a, b}∗ | w a palindrome}[For each ℓ ≥ 1, aℓbaℓ ∈ L1 is of length ≥ ℓ and has property (†).]
(iii) L3 , {ap | p prime}
![Page 295: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/295.jpg)
L3 = {ap | p prime}
For each ℓ ≥ 1 let w = ap ∈ L3, p prime & p > 2ℓ
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1 . . .
![Page 296: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/296.jpg)
L3 = {ap | p prime}
For each ℓ ≥ 1 let w = ap ∈ L3, p prime & p > 2ℓ
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1 . . .
then u1 = ar v = as u2 = ap−r−s
with s ≥ 1 & r + s ≤ ℓ
![Page 297: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/297.jpg)
L3 = {ap | p prime}
For each ℓ ≥ 1 let w = ap ∈ L3, p prime & p > 2ℓ
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1 . . .
then u1 = ar v = as u2 = ap−r−s
with s ≥ 1 & r + s ≤ ℓ
so u1vp−su2 =
![Page 298: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/298.jpg)
L3 = {ap | p prime}
For each ℓ ≥ 1 let w = ap ∈ L3, p prime & p > 2ℓ
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1 . . .
then u1 = ar v = as u2 = ap−r−s
with s ≥ 1 & r + s ≤ ℓ
so u1vp−su2 = ar as(p−s) ap−r−s =
![Page 299: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/299.jpg)
L3 = {ap | p prime}
For each ℓ ≥ 1 let w = ap ∈ L3, p prime & p > 2ℓ
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1 . . .
then u1 = ar v = as u2 = ap−r−s
with s ≥ 1 & r + s ≤ ℓ
so u1vp−su2 = ar as(p−s) ap−r−s = a(p−s)(s+1)
![Page 300: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/300.jpg)
L3 = {ap | p prime}
For each ℓ ≥ 1 let w = ap ∈ L3, p prime & p > 2ℓ
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1 . . .
then u1 = ar v = as u2 = ap−r−s
with s ≥ 1 & r + s ≤ ℓ
so u1vp−su2 = ar as(p−s) ap−r−s = a(p−s)(s+1)
but s ≥ 1 ⇒ s + 1 ≥ 2
and (p − s) > (2ℓ− ℓ) ≥ 1 ⇒ (p − s) ≥ 2
![Page 301: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/301.jpg)
L3 = {ap | p prime}
For each ℓ ≥ 1 let w = ap ∈ L3, p prime & p > 2ℓ
If w = u1vu2 with |u1v| ≤ ℓ & |v| ≥ 1 . . .
then u1 = ar v = as u2 = ap−r−s
with s ≥ 1 & r + s ≤ ℓ
so u1vp−su2 = ar as(p−s) ap−r−s = a(p−s)(s+1)
but s ≥ 1 ⇒ s + 1 ≥ 2
and (p − s) > (2ℓ− ℓ) ≥ 1 ⇒ (p − s) ≥ 2
so a(p−s)(s+1) 6∈ L3
![Page 302: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/302.jpg)
Examples
None of the following three languages are regular:
(i) L1 , {anbn | n ≥ 0}[For each ℓ ≥ 1, aℓbℓ ∈ L1 is of length ≥ ℓ and has property (†).]
(ii) L2 , {w ∈ {a, b}∗ | w a palindrome}[For each ℓ ≥ 1, aℓbaℓ ∈ L1 is of length ≥ ℓ and has property (†).]
(iii) L3 , {ap | p prime}[For each ℓ ≥ 1, we can find a prime p with p > 2ℓ and then ap ∈ L3 has length ≥ ℓ andhas property (†).]
![Page 303: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/303.jpg)
Pumping Lemma property is necessaryfor a language to be regular
It is not sufficient
![Page 304: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/304.jpg)
Example of a non-regular languagewith the pumping lemma property
L , {cmanbn | m ≥ 1 & n ≥ 0} ∪ {ambn | m, n ≥ 0}
satisfies the pumping lemma property with ℓ = 1.
[For any w ∈ L of length ≥ 1, can take u1 = ε, v = first letter of w,
u2 = rest of w.]
But L is not regular – see Exercise 5.1.
![Page 305: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/305.jpg)
L is not regular: (sketch)
.
![Page 306: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/306.jpg)
L is not regular: (sketch)
If L is regular there is a DFA M with L = L(M).Let’s build a new machine, M′ from it.
.
![Page 307: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/307.jpg)
L is not regular: (sketch)
If L is regular there is a DFA M with L = L(M).Let’s build a new machine, M′ from it.
Take a c transition from the start state of M .Make the state you reach the start state ofM′.
![Page 308: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/308.jpg)
L is not regular: (sketch)
If L is regular there is a DFA M with L = L(M).Let’s build a new machine, M′ from it.
Take a c transition from the start state of M .Make the state you reach the start state ofM′.
Delete all transitions involving c (and remove cfrom the alphabet). But don’t remove anystates and keep the same accept states.
![Page 309: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/309.jpg)
L is not regular: (sketch)
If L is regular there is a DFA M with L = L(M).Let’s build a new machine, M′ from it.
Take a c transition from the start state of M .Make the state you reach the start state ofM′.
Delete all transitions involving c (and remove cfrom the alphabet). But don’t remove anystates and keep the same accept states.
What language does M′ recognise?
![Page 310: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/310.jpg)
The way ahead, in THEORY
◮ What does is mean for a functionto be computable?[ Ib Computation Theory ]
![Page 311: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/311.jpg)
The way ahead, in THEORY
◮ What does is mean for a functionto be computable?[ Ib Computation Theory ]
◮ Are some computational tasksintrinsiclaly unfeasible?[ Ib ComplexityTheory ]
![Page 312: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/312.jpg)
The way ahead, in THEORY
◮ What does is mean for a functionto be computable?[ Ib Computation Theory ]
◮ Are some computational tasksintrinsiclaly unfeasible?[ Ib ComplexityTheory ]
◮ How do we specify and reasonabout program behaviour?[ Ib Logic and Proof,1b Semantics of PLs ]
![Page 313: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/313.jpg)
The way ahead, in FORMAL LANGUAGES
◮ Are there other useful languageclasses?
![Page 314: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/314.jpg)
The way ahead, in FORMAL LANGUAGES
◮ Are there other useful languageclasses?
◮ Are there other useful automataclasses that have a correspondenceto them?
![Page 315: Formal Languages and Automata - University of Cambridge · 2017-02-06 · Formal Languages and Automata 5 lectures for 2016-17 Computer Science Tripos Part IA Discrete Mathematics](https://reader033.fdocuments.in/reader033/viewer/2022052214/5f0455957e708231d40d775b/html5/thumbnails/315.jpg)
The way ahead, in FORMAL LANGUAGES
◮ Are there other useful languageclasses?
◮ Are there other useful automataclasses that have a correspondenceto them?
◮ What if we ask the same questionsabout them that we asked aboutregular languages?