Finite State Automata

0.5 setgray0 0.5 setgray1
Finite State Automata
Automata: Theory and Practice
Paritosh K. Pandya
(TIFR, Mumbai, India)
Unversity of Trento
10-24 May 2005
Trento’2005 – p. 1/4
Finite Word Langauges
Alphabet Σ is collection of symbols (letters). E.g.
Σ = {a, b}.
Finite word is a finite sequence of letters. E.g. aabb. Set
of all finite words is denoted by Σ∗ .
Langauge U is a set of words, i.e. U ⊆ Σ∗ .
Example: (a) Words over Σ = {a, b} with equal number
of a and b. E.g. aabb or abba.
Language recognition problem: To determine whether a
word belongs to a language. Most computational problems
can be encoded as language recognition problem.
Automata are computational devices to solve langauge
recognition problems.
Trento’2005 – p. 2/4
Finite State Automata
Basic model of computational systems with finite memory.
Widely applicable
Embedded System Controllers.
Languages: Esterel, Lustre, Verilog, SMV.
Synchronous Circuits.
Regular Expression Pattern Matching
Grep, Lex, Perl, Awk, Emacs.
Protocols
Network Protocols
Architecture: Bus, Cache Coherence ...
Mobile Telephony.
Good decision procedures
Trento’2005 – p. 3/4
Topics
DFA, NFA and Equivalence
Closure Properties and Decision Problems
Regular Expressions and McNaughton Yamada Lemma
Homomorphisms
DFA minization
Pumping Lemma
Myhill Nerode Theorem
Bisimulation and collapsing nondeterministic automta
Textbook: Dexter Kozen, Automata and Computability.
Springer, 1997.
Trento’2005 – p. 4/4
Notation
a, b ∈ Σ finite alphabet.
u, v, w ∈ Σ∗ finite words.
ǫ empty word.
u.v catenation.
ui = u.u. .u repeated i-times.
U, V ⊆ Σ∗ Finite word languages.
For a set S we use 2S to denote all its subsets.
def
2S = {X | X ⊆ S}.
Trento’2005 – p. 5/4
Deterministic Finite State Automaton
Example: DFA A1 over Σ = {a, b}.
b
a
s1
b
s2
a
Trento’2005 – p. 6/4
Deterministic Finite State Automaton
Example: DFA A1 over Σ = {a, b}.
b
a
s1
b
s2
a
The run of A1 over the word abba is :
a
b
b
a
s1 −→ s1 −→ s2 −→ s2 −→ s1 .
For a given word the run is unique.
Trento’2005 – p. 6/4
Deterministic Finite State Automaton
Example: DFA A1 over Σ = {a, b}.
b
a
s1
b
s2
a
The run of A1 over the word abba is :
a
b
b
a
s1 −→ s1 −→ s2 −→ s2 −→ s1 .
For a given word the run is unique.
Recognises words which do not end in b.
Trento’2005 – p. 6/4
DFA Definition
DFA is (Q, Σ, δ, I, F )
Q Finite set of states.
Σ is the finite alphabet.
q0 ∈ Q the initial states.
F ⊆ Q set of final states.
δ : Q × Σ → Q, transition function (total).
a
Notation: We use q −→ q ′ to denote δ(q, a) = q ′ .
A run of DFA A on u = a0 , a1 , . . . , an−1 is a sequence of
ai
states q0 , q1 , . . . , qn s.t. qi −→ qi+1 for 0 ≤ i < n.
For a given word w the DFA has a unique run.
A run accepting if last state qn ∈ F .
Trento’2005 – p. 7/4
Regular Langauges
Language accepted by A
L(A) = {u ∈ Σ∗ | A has an accepting run on u}.
A langauge accepted by a DFA is called a regular
language.
Trento’2005 – p. 8/4
Regular Langauges
Language accepted by A
L(A) = {u ∈ Σ∗ | A has an accepting run on u}.
A langauge accepted by a DFA is called a regular
language.
Define δ̂(q, u) inductively over u ∈ Σ∗ .
δ̂(q, ǫ) = q,
δ̂(q, ua) = δ(δ̂(q, u), a).
def S
For X ⊆ Q define δ̂(X, u) =
q∈X δ̂(q, u).
Trento’2005 – p. 8/4
Nondeterministic FSA
NFA A2
.
a,b
b
s1
b
s2
Trento’2005 – p. 9/4
Nondeterministic FSA
NFA A2
.
a,b
b
s1
b
s2
A run of A2 over the word abbb is:
b
b
b
a
s1 −→ s1 −→ s1 −→ s2 −→ s2 .
Another run over the same word abbb is:
b
b
b
a
s1 −→ s1 −→ s1 −→ s1 −→ s1 .
A2 has no accepting run over the word aba as:
a
b
a
s1 −→ s1 −→ s2 −→ ×
NFA can have 0, 1 or more than one runs on a given word.
Trento’2005 – p. 9/4
Nondeterministic FSA
NFA A2 recognises words which end in b.
a,b
b
s1
b
s2
A run of A2 over the word abbb is:
b
b
b
a
s1 −→ s1 −→ s1 −→ s2 −→ s2 .
Another run over the same word abbb is:
b
b
b
a
s1 −→ s1 −→ s1 −→ s1 −→ s1 .
A2 has no accepting run over the word aba as:
a
b
a
s1 −→ s1 −→ s2 −→ ×
NFA can have 0, 1 or more than one runs on a given word.
Trento’2005 – p. 9/4
NFA Definition
Nodeterministic Finite State Automaton:
NFA is (Q, Σ, δ, I, F )
Q Finite set of states.
I ⊆ Q set of initial states.
F ⊆ Q set of final states.
δ ⊆ Q × Σ × Q transition relation (edges).
a
We use q −→ q ′ to denote (q, a, q ′ ) ∈ δ .
Alternate Definition of δ
δ : Q × Σ → 2Q .
Exercise: Given that |Q| = n and |Σ| = k , give the number of
syntactically distinct NFAs.
Trento’2005 – p. 10/4
NFA Runs
A run of NFA A on u = a0 , a1 , . . . , an−1 is a sequence of
ai
states q0 , q1 , . . . , qn s.t. qi −→
qi+1 for 0 ≤ i < n and
q0 ∈ I .
For a given word w the NFA can have many runs.
A run accepting if last state qn ∈ F .
Language accepted by A is
L(A) = {u ∈ Σ∗ | A has an accepting run on u}.
Trento’2005 – p. 11/4
NFA Runs
A run of NFA A on u = a0 , a1 , . . . , an−1 is a sequence of
ai
states q0 , q1 , . . . , qn s.t. qi −→
qi+1 for 0 ≤ i < n and
q0 ∈ I .
For a given word w the NFA can have many runs.
A run accepting if last state qn ∈ F .
Language accepted by A is
L(A) = {u ∈ Σ∗ | A has an accepting run on u}.
Define δ̂(S, w) inductively on w as follows.
δ̂(S, a) = ∪s∈S δ(s, a)
δ̂(S, ǫ) = S,
δ̂(S, wa) = δ̂(δ̂(S, w), a).
Claim x ∈ L(A) ⇔ δ̂(I, x) ∩ F 6= ∅
Trento’2005 – p. 11/4
Subset Construction
Theorem (determinisation) Given NFA A = (Q, Σ, δ, I, F ) we
can construct a DFA A′ s.t. L(A) = L(A′ ).
Trento’2005 – p. 12/4
Subset Construction
Theorem (determinisation) Given NFA A = (Q, Σ, δ, I, F ) we
can construct a DFA A′ s.t. L(A) = L(A′ ).
Subset construction:
0,1
p
r
q
1
0,1
Consider δ̂(I, w) the set of states reached after word w. We
define ∆(S, a).
0
1
→ {p} {p}
{p, q}
{p, q} {p, r} {p, q, r}
{p, r} {p}
{p, q}
{p, q, r} {p, r} {p, q, r}
Trento’2005 – p. 12/4
Subset Construction (cont)
Let A′ = (2Q , Σ, ∆, I, F ′ ) where
∆(S, a) = {q | q ∈ δ(p, a) ∧ p ∈ S}
F ′ = {S ∈ 2Q | S ∩ F 6= ∅}.
Claim: L(A) = L(A′ ).
ˆ
w).
Proof Method: Show that δ̂(S, w) = ∆(S,
Complexity |A′ | ≤ 2|A| .
Lower Bound Example: Consider NFA recognising words
over {0, 1} such that the n-th last symbol is 1.
Claim: Equivalent DFA will have at least 2n states.
(Home Exercise: Prove this.)
Trento’2005 – p. 13/4
Closure Properties
Theorem (boolean closure) Given NFA A1 , A2 over Σ we
can construct NFA A over Σ s.t.
L(A) = L(A1 ) (Complement). Size: |A| = 2|A1 | .
L(A) = L(A1 ) ∪ L(A2 ) (union). Size: |A| = |A1 | + |A2 |.
L(A) = L(A1 ) ∩ L(A2 ) (intersection). |A| = |A1 | × |A2 |.
Trento’2005 – p. 14/4
Synchronous Product: Example
a
b
s0
t0
b
b
b
a a
a
b
A1 recognises words
with even number of
b.
A2 recognises words
with
number
of
a
a mod 3 = 0.
The Product Automaton A1 × A2 with F = {s0 , t0 }.
t2
s1
s0 t0
a a
a s t
0 1
s0 t2
b
b
b
b
t1
s1 t0
a a
a s t
1 1
s1 t2
b
b
Trento’2005 – p. 15/4
Synchronous Product Construction
Let A1 = (Q1 , Σ, δ1 , I1 , F1 ) and A2 = (Q2 , Σ, δ2 , I2 , F2 ).
Then,
A1 × A2 = (Q, Σ, δ, I, F ) where
Q = Q1 × Q2 .
F = F 1 × F2 .
a
< p, q >−→<
p′ , q ′
I = I1 × I2 .
a
> iff p −→
p′
a
and q −→ q ′ .
Theorem L(A1 × A2 ) = L(A1 ) ∩ L(A2 ).
Semantics of many concurrent systems E.g. Esterel,
Statecharts, Lustre, Synchronous circuits, SMV.
Trento’2005 – p. 16/4
Synchronised Product Construction
Let A1 = (Q1 , Σ1 , δ1 , I1 , F1 ) and A2 = (Q2 , Σ2 , δ2 , I2 , F2 ).
Then,
A1 kA2 = (Q, Σ, δ, I, F ) where
Q = Q1 × Q2 .
I = I1 × I2 .
a
p′ , q ′
a
p′ , q
a
p, q ′
< p, q >−→<
a
q −→ q ′ .
< p, q >−→<
< p, q >−→<
Σ = Σ1 ∪ Σ2 .
F = F 1 × F2 .
a
> if a ∈ Σ1 ∩ Σ2 and p −→ p′ and
a
> if a ∈ Σ1 , a 6∈ Σ2 and p −→ p′ .
a
> if a 6∈ Σ1 , a ∈ Σ2 and q −→ q ′ .
Trento’2005 – p. 17/4
Asynchronous Product Construction
Let A1 = (Q1 , Σ1 , δ1 , I1 , F1 ) and A2 = (Q2 , Σ2 , δ2 , I2 , F2 ).
Then,
A1 kA A2 = (Q, Σ, δ, I, F ) where
Q = Q1 × Q2 .
I = I1 × I2 .
a
p′ , q
a
p, q ′
< p, q >−→<
< p, q >−→<
Σ = Σ1 ∪ Σ2 .
F = F 1 × F2 .
a
> if a ∈ Σ1 and p −→ p′ .
a
> if a ∈ Σ2 and q −→ q ′ .
Trento’2005 – p. 18/4
Decision Problems
Theorem (Emptiness) Given NFA A we can decide whether
L(A) = ∅.
Method Forward/Backward Reachability in Automaton
graph using say Depth First Search. Complexity is
O(|Q| + |δ|). In practice, symbolic techniques are used and
often more effective.
Theorem (Language Containment) Given NFA A1 and A2
we can decide whether L(A1 ) ⊆ L(A2 ).
Method: L(A1 ) ⊆ L(A2 ) iff L(A1 ) ∩ L(A2 ) = ∅. Complexity
is O(|A1 | × 2|A2 | ).
Trento’2005 – p. 19/4
Kleene Closure
Let U, V ⊆ Σ∗ .
def
(Catenation) Let U · V = {x · y | x ∈ U ∧ y ∈ V }.
(Iteration) Let
def
i
U =
{x1 · x2 · . . . · xi | xk ∈ U, 1 ≤ k < i}.
By convention
def
0
U =
{ǫ}.
(Kleene Closure) Let
def
∗
U =
S
0≤i
U i.
Theorem Regular langauges are closed under the
operations U · V and U ∪ V and U ∗ .
Proof method: Using ǫ-NFA.
Trento’2005 – p. 20/4
Regular Expressions
Syntax: ∅ | ǫ | a | reg1 .reg 2 | reg1 + reg 2 | reg ∗ .
Trento’2005 – p. 21/4
Regular Expressions
Syntax: ∅ | ǫ | a | reg1 .reg 2 | reg1 + reg 2 | reg ∗ .
Language L(reg) is defined inductively:
L(∅) = ∅, L(a) = {a}, L(ǫ) = {ǫ}.
L(re1 · re2 ) = L(re1 ) · L(re2 ),
L(re1 + re2 ) = L(re1 ) ∪ L(re2 ),
L(re∗ ) = (L(re1 ))∗
Example: a∗ .(b + bb).a∗ . Words over a, b having either 1 b or
2 consecutive b.
Trento’2005 – p. 21/4
Regular Expressions
Syntax: ∅ | ǫ | a | reg1 .reg 2 | reg1 + reg 2 | reg ∗ .
Language L(reg) is defined inductively:
L(∅) = ∅, L(a) = {a}, L(ǫ) = {ǫ}.
L(re1 · re2 ) = L(re1 ) · L(re2 ),
L(re1 + re2 ) = L(re1 ) ∪ L(re2 ),
L(re∗ ) = (L(re1 ))∗
Example: a∗ .(b + bb).a∗ . Words over a, b having either 1 b or
2 consecutive b.
Equivalence of RegExp and FSA (McNaughton, Yamada)
Theorem: For every regular expression reg we can
construct a language equivalent ǫ-NFA of size O(|reg|).
Trento’2005 – p. 21/4
Automata to RegExp
Theorem: For every NFA A = (Q, Σ, δ, I, F ) we can
construct a langauge equivalent regular expression reg(A).
Trento’2005 – p. 22/4
Automata to RegExp
Theorem: For every NFA A = (Q, Σ, δ, I, F ) we can
construct a langauge equivalent regular expression reg(A).
X for X ⊆ Q and
Construction Define regular expression αp,q
p, q ∈ Q. This denotes set of words w such that A has a run
on w from p to q where all intermediate states are from X .
Trento’2005 – p. 22/4
Automata to RegExp
Theorem: For every NFA A = (Q, Σ, δ, I, F ) we can
construct a langauge equivalent regular expression reg(A).
X for X ⊆ Q and
Construction Define regular expression αp,q
p, q ∈ Q. This denotes set of words w such that A has a run
on w from p to q where all intermediate states are from X .
q
1
0
p
Example:
q
αp,r
= 10
0
1
r
0
p,q
αp,r
= 0∗ · 1 · 0
p,q,r
Aim: To compute αp,p
Trento’2005 – p. 22/4
Automata to RegExp (2)
X can be recursively defined using the following rules:
αp,r
∅
= a1 + . . . + ak
αp,r
where r ∈ δ(p, ai )
provided p 6= r
Trento’2005 – p. 23/4
Automata to RegExp (2)
X can be recursively defined using the following rules:
αp,r
∅
= a1 + . . . + ak
αp,r
where r ∈ δ(p, ai )
provided p 6= r
∅
= a1 + . . . + ak + ǫ
αp,p
where p ∈ δ(p, ai )
Trento’2005 – p. 23/4
Automata to RegExp (2)
X can be recursively defined using the following rules:
αp,r
∅
= a1 + . . . + ak
αp,r
where r ∈ δ(p, ai )
provided p 6= r
∅
= a1 + . . . + ak + ǫ
αp,p
where p ∈ δ(p, ai )
For any q ∈ X ,
X
=
αp,r
(X−{q})
αp,r
+
(X−{q})
αp,q
(X−{q}) ∗
(X−{q})
· αq,q
· αq,r
Trento’2005 – p. 23/4
Automata to RegExp (2)
X can be recursively defined using the following rules:
αp,r
∅
= a1 + . . . + ak
αp,r
where r ∈ δ(p, ai )
provided p 6= r
∅
= a1 + . . . + ak + ǫ
αp,p
where p ∈ δ(p, ai )
For any q ∈ X ,
X
=
αp,r
(X−{q})
αp,r
+
(X−{q})
αp,q
(X−{q}) ∗
(X−{q})
· αq,q
· αq,r
The desired regular expression is given as follows:
P
P
Q
α
p,q .
p∈I
q∈F
Trento’2005 – p. 23/4
Example
q
1
0
0
1
p
r
0
p,q,r
Compute αp,p
as
p,q,r
p,r
p,r
p,r ∗
p,r
αp,p
.
= αp,p
+ αp,q
· (αq,q
) · αq,p
It is easy to see that
p,r
p,r
αp,p
= 0∗ ,
αp,q
= 0∗ · 1
p,r
p,r
αq,p
= 00(0∗ ),
αq,q
= ǫ + 01 + 00(0∗ )1
p,q,r
Hence αp,p
= 0∗ + 0∗ 1 · (ǫ + 01 + 00(0∗ )1)∗ · 00(0∗ )
Trento’2005 – p. 24/4
Kleene Algebra
Axiomatizing equivalence of regular expression.
Not covered in this course. (See Kozen.)
Trento’2005 – p. 25/4
Homomorphism
Homomorphism is a map h : Σ∗ → Γ∗ with the property
∀u, v ∈ Σ∗ . h(u · v) = h(u) · h(v).
Consequences:
h(ǫ) = ǫ.
Giving h(a) for a ∈ Σ uniquely determines h.
Trento’2005 – p. 26/4
Homomorphism
Homomorphism is a map h : Σ∗ → Γ∗ with the property
∀u, v ∈ Σ∗ . h(u · v) = h(u) · h(v).
Consequences:
h(ǫ) = ǫ.
Giving h(a) for a ∈ Σ uniquely determines h.
Theorem If h : Σ∗ → Γ∗ is a homomorphism and B ⊆ Γ∗ is
regular then h−1 (B) = {x ∈ Σ∗ | h(x) ∈ B} is also regular.
Trento’2005 – p. 26/4
Homomorphism
Homomorphism is a map h : Σ∗ → Γ∗ with the property
∀u, v ∈ Σ∗ . h(u · v) = h(u) · h(v).
Consequences:
h(ǫ) = ǫ.
Giving h(a) for a ∈ Σ uniquely determines h.
Theorem If h : Σ∗ → Γ∗ is a homomorphism and B ⊆ Γ∗ is
regular then h−1 (B) = {x ∈ Σ∗ | h(x) ∈ B} is also regular.
Proof method: Given DFA BB = (Q, Γ, δ, q0 , F ) for B
construct DFA AA for h−1 (B) as follows.
def
AA = (Q, Σ, δ ′ , q0 , F ) with δ ′ (q, a) = δ̂(q, h(a)).
Trento’2005 – p. 26/4
Homomorphism (2)
Theorem If h : Σ∗ → Γ∗ is a homomorphism and A ⊆ Σ∗ is
regular then h(A) = {h(x) | x ∈ A} is also regular.
Trento’2005 – p. 27/4
Homomorphism (2)
Theorem If h : Σ∗ → Γ∗ is a homomorphism and A ⊆ Σ∗ is
regular then h(A) = {h(x) | x ∈ A} is also regular.
Proof method: Given regular epxression re for A, obtain
h(re) by substituting every letter a by h(a). Then
L(h(re)) = h(A).
Trento’2005 – p. 27/4
Homomorphism (2)
Theorem If h : Σ∗ → Γ∗ is a homomorphism and A ⊆ Σ∗ is
regular then h(A) = {h(x) | x ∈ A} is also regular.
Proof method: Given regular epxression re for A, obtain
h(re) by substituting every letter a by h(a). Then
L(h(re)) = h(A).
Theorem (projection) Given N F A(A1 ) over Σ and surjection
h : Σ → Γ, we can construct N F A(A2 ) over Γ s.t.
L(A2 ) = h(L(A1 )).
Proof Method: Substitute label a by h(a) in each transition
of A1 to get A2 . Note that this can make DFA into NFA. We
have |A2 | = |A1 |.
Trento’2005 – p. 27/4
Homomorphism (2)
Theorem If h : Σ∗ → Γ∗ is a homomorphism and A ⊆ Σ∗ is
regular then h(A) = {h(x) | x ∈ A} is also regular.
Proof method: Given regular epxression re for A, obtain
h(re) by substituting every letter a by h(a). Then
L(h(re)) = h(A).
Theorem (projection) Given N F A(A1 ) over Σ and surjection
h : Σ → Γ, we can construct N F A(A2 ) over Γ s.t.
L(A2 ) = h(L(A1 )).
Proof Method: Substitute label a by h(a) in each transition
of A1 to get A2 . Note that this can make DFA into NFA. We
have |A2 | = |A1 |.
Example: Given regular A over {0, 1} the language
hamming3 (A) is regular.
Trento’2005 – p. 27/4
DFA Minimization
a
1
a
b
3
a,b
5
0
b
2
b
a
4
a,b
a,b
Trento’2005 – p. 28/4
DFA Minimization
a
1
a
b
3
a,b
5
0
b
2
b
a
4
a,b
a,b
Trento’2005 – p. 28/4
DFA Minimization
a
1
a
b
3
a,b
5
0
b
p≈q
def
=
2
b
a
4
a,b
a,b
∀x ∈ Σ∗ . (δ̂(p, x) ∈ F ⇔ δ̂(q, x) ∈ F )
Trento’2005 – p. 28/4
DFA Minimization
1
a
a
b
3
a,b
5
0
2
b
p≈q
def
=
b
a
4
a,b
a,b
∀x ∈ Σ∗ . (δ̂(p, x) ∈ F ⇔ δ̂(q, x) ∈ F )
Equivalent Automaton
6
a,b
a,b
7
8
a,b
Trento’2005 – p. 28/4
DFA Minimization (2)
p≈q
def
=
∀x ∈ Σ∗ . (δ̂(p, x) ∈ F ⇔ δ̂(q, x) ∈ F )
Trento’2005 – p. 29/4
DFA Minimization (2)
p≈q
def
=
∀x ∈ Σ∗ . (δ̂(p, x) ∈ F ⇔ δ̂(q, x) ∈ F )
Proposition ≈ is an equivalence relation, i.e.
(a) ∀p. p ≈ p,
(b) ∀p, q. p ≈ q ⇒ q ≈ p
(c) ∀p, q, r. p ≈ q ∧ q ≈ r ⇒ p ≈ r
(Exercise: Check that above properties are true.)
Trento’2005 – p. 29/4
DFA Minimization (2)
p≈q
def
=
∀x ∈ Σ∗ . (δ̂(p, x) ∈ F ⇔ δ̂(q, x) ∈ F )
Proposition ≈ is an equivalence relation, i.e.
(a) ∀p. p ≈ p,
(b) ∀p, q. p ≈ q ⇒ q ≈ p
(c) ∀p, q, r. p ≈ q ∧ q ≈ r ⇒ p ≈ r
(Exercise: Check that above properties are true.)
≈ partitions Q into equivalence classes. Let [p] denote the
equivalence class of p.
Example The classes are {0}, {1, 2} and {3, 4, 5}.
Trento’2005 – p. 29/4
Quotient Automaton
Given DFA A = (Q, Σ, δ, [q0 ], F ) and ≈ as before, the
def
Quotient automaton is A/ ≈ = (Q′ , Σ, δ ′ , [q0 ], F ′ ), where
Q′ = {[p] | p ∈ Q}
δ ′ ([p], a) = [δ(p, a)]
F ′ = {[f ] | f ∈ F }
Trento’2005 – p. 30/4
Quotient Automaton
Given DFA A = (Q, Σ, δ, [q0 ], F ) and ≈ as before, the
def
Quotient automaton is A/ ≈ = (Q′ , Σ, δ ′ , [q0 ], F ′ ), where
Q′ = {[p] | p ∈ Q}
δ ′ ([p], a) = [δ(p, a)]
F ′ = {[f ] | f ∈ F }
Well-formedness
Theorem(Congruence)
p ≈ q ⇒ ∀a ∈ Σ. δ(p, a) ≈ δ(q, a).
Trento’2005 – p. 30/4
Quotient Automaton
Given DFA A = (Q, Σ, δ, [q0 ], F ) and ≈ as before, the
def
Quotient automaton is A/ ≈ = (Q′ , Σ, δ ′ , [q0 ], F ′ ), where
Q′ = {[p] | p ∈ Q}
δ ′ ([p], a) = [δ(p, a)]
F ′ = {[f ] | f ∈ F }
Well-formedness
Theorem(Congruence)
p ≈ q ⇒ ∀a ∈ Σ. δ(p, a) ≈ δ(q, a).
Now we can show that quotient automaton recognises the
same language.
Theorem δ̂ ′ ([p], w)
=
[δ̂(p, w)].
Corollary L(A/ ≈) = L(A).
Trento’2005 – p. 30/4
Minimization algorithm
1. Make pairs table with (p, q) ∈ Q × Q and p < q .
2. Mark (p, q) if p ∈ F ∧ q ∈
/ F or vice versa.
3. Repeat following steps until no change occurs.
(a) Pick unmarked state (p, q).
(b) If (δ(p, a), δ(q, a)) is marked for some a ∈ Σ then mark
(p, q)
Trento’2005 – p. 31/4
Minimization algorithm
1. Make pairs table with (p, q) ∈ Q × Q and p < q .
2. Mark (p, q) if p ∈ F ∧ q ∈
/ F or vice versa.
3. Repeat following steps until no change occurs.
(a) Pick unmarked state (p, q).
(b) If (δ(p, a), δ(q, a)) is marked for some a ∈ Σ then mark
(p, q)
Termination: In each pass at least one new pair must get
marked.
Lemma (p, q) is marked iff ∃x ∈ Σ∗ .δ̂(p, x) ∈ F ∧ δ̂(q, x) ∈
/F
or vice versa.
Trento’2005 – p. 31/4
Minimization algorithm
1. Make pairs table with (p, q) ∈ Q × Q and p < q .
2. Mark (p, q) if p ∈ F ∧ q ∈
/ F or vice versa.
3. Repeat following steps until no change occurs.
(a) Pick unmarked state (p, q).
(b) If (δ(p, a), δ(q, a)) is marked for some a ∈ Σ then mark
(p, q)
Termination: In each pass at least one new pair must get
marked.
Lemma (p, q) is marked iff ∃x ∈ Σ∗ .δ̂(p, x) ∈ F ∧ δ̂(q, x) ∈
/F
or vice versa.
Question: Can there be a DFA smaller than A/ ≈ equivalent
to A?
Trento’2005 – p. 31/4
Pumping Lemma
Idea: Consider a long word recognized by a DFA with n
states. Consider substring y s.t. |y| ≥ n. Some state during
y part of the run must repeat. The string between repeating
states can be pumped.
Trento’2005 – p. 32/4
Pumping Lemma
Idea: Consider a long word recognized by a DFA with n
states. Consider substring y s.t. |y| ≥ n. Some state during
y part of the run must repeat. The string between repeating
states can be pumped.
Lemma For every regular language L
∃n > 0 such that
∀ x, y, z with x · y · z ∈ L and |y| ≥ n
∃ u, v, w s.t. y = u · v · w with
|v| > 0 and
x · u · v i · w · z ∈ L for all 0 ≤ i.
Trento’2005 – p. 32/4
Pumping Lemma
Idea: Consider a long word recognized by a DFA with n
states. Consider substring y s.t. |y| ≥ n. Some state during
y part of the run must repeat. The string between repeating
states can be pumped.
Lemma For every regular language L
∃n > 0 such that
∀ x, y, z with x · y · z ∈ L and |y| ≥ n
∃ u, v, w s.t. y = u · v · w with
|v| > 0 and
x · u · v i · w · z ∈ L for all 0 ≤ i.
Pumping Lemma is used to prove that some langugages
n
2
are not regular. E.g. {a | n ≥ 0}.
Trento’2005 – p. 32/4
Proving non-regularity
Game with Demon
Demon claims L is regular and chooses n.
You choose a string xyz ∈ L with |y| ≥ n.
Demon partitions y = uvw with |v| =
6 0.
You show that xu(v i )wz ∈
/ L for some i for your choice.
Trento’2005 – p. 33/4
Myhill-Nerode Relations
Let ≡ be an equivalence relation over Σ∗ .
≡ is right congruent if ∀x, y ∈ Σ∗ , a ∈ Σ we have
x≡y ⇒ x·a≡y·a
Trento’2005 – p. 34/4
Myhill-Nerode Relations
Let ≡ be an equivalence relation over Σ∗ .
≡ is right congruent if ∀x, y ∈ Σ∗ , a ∈ Σ we have
x≡y ⇒ x·a≡y·a
Let R ⊆ Σ∗ (not necessarily regular).
≡ refines R if ∀x, y ∈ Σ∗
x ≡ y ⇒ (x ∈ R ⇔ y ∈ R)
Trento’2005 – p. 34/4
Myhill-Nerode Relations
Let ≡ be an equivalence relation over Σ∗ .
≡ is right congruent if ∀x, y ∈ Σ∗ , a ∈ Σ we have
x≡y ⇒ x·a≡y·a
Let R ⊆ Σ∗ (not necessarily regular).
≡ refines R if ∀x, y ∈ Σ∗
x ≡ y ⇒ (x ∈ R ⇔ y ∈ R)
≡ is of finite index if ≡ partitions the Σ∗ into only finitely
many equivalence classes.
Trento’2005 – p. 34/4
Myhill-Nerode Relations
Let ≡ be an equivalence relation over Σ∗ .
≡ is right congruent if ∀x, y ∈ Σ∗ , a ∈ Σ we have
x≡y ⇒ x·a≡y·a
Let R ⊆ Σ∗ (not necessarily regular).
≡ refines R if ∀x, y ∈ Σ∗
x ≡ y ⇒ (x ∈ R ⇔ y ∈ R)
≡ is of finite index if ≡ partitions the Σ∗ into only finitely
many equivalence classes.
Equivalence relation ≡ is called Myhill-Nerode Relation
refining R if it satisfies all the three properties above.
Trento’2005 – p. 34/4
Machine Equivalence
Given a DFA A = (Q, Σ, δ, q0 , F ) define the induced
equivalence ≡A over Σ∗ as follows:
x ≡A y
def
=
δ̂(q0 , x) = δ̂(q0 , y).
Trento’2005 – p. 35/4
Machine Equivalence
Given a DFA A = (Q, Σ, δ, q0 , F ) define the induced
equivalence ≡A over Σ∗ as follows:
x ≡A y
def
=
δ̂(q0 , x) = δ̂(q0 , y).
Proposition ≡A is a Myhill-Nerode relation refining L(A).
Proof Method Check the following:
(a) ≡A is an equivalence relation over Σ∗ .
(b) x ≡A y ⇒ ∀a. xa ≡A ya.
(c) x ≡A y ⇒ x ∈ L(A) ⇔ y ∈ L(A)
(d) ≡A is of finite index.
Trento’2005 – p. 35/4
Machine Equivalence
Given a DFA A = (Q, Σ, δ, q0 , F ) define the induced
equivalence ≡A over Σ∗ as follows:
x ≡A y
def
=
δ̂(q0 , x) = δ̂(q0 , y).
Proposition ≡A is a Myhill-Nerode relation refining L(A).
Proof Method Check the following:
(a) ≡A is an equivalence relation over Σ∗ .
(b) x ≡A y ⇒ ∀a. xa ≡A ya.
(c) x ≡A y ⇒ x ∈ L(A) ⇔ y ∈ L(A)
(d) ≡A is of finite index.
Example: We give automaton A and the induced
equivalence partitions.
Trento’2005 – p. 35/4
From Equivalence to DFA
Let ≡ be Myhill-Nerode refining R. Define DFA
def
A≡ = (Q, Σ, δ, q0 , F ) as follows:
def
Q = {[x] | x ∈ Σ∗ }
def
q0 = [ǫ]
def
F = {[x] | x ∈ R}
def
δ([x], a]) = [xa].
(Check well-formedness.)
Trento’2005 – p. 36/4
From Equivalence to DFA
Let ≡ be Myhill-Nerode refining R. Define DFA
def
A≡ = (Q, Σ, δ, q0 , F ) as follows:
def
Q = {[x] | x ∈ Σ∗ }
def
q0 = [ǫ]
def
F = {[x] | x ∈ R}
def
δ([x], a]) = [xa].
(Check well-formedness.)
Theorem L(A≡ )
=
R.
Lemma δ̂([x], y) = [xy].
Trento’2005 – p. 36/4
Correspondence
The ≡A and A≡ are inverses of each other.
Theorem ≡A≡
=
≡.
Theorem If A is automaton without unreachable states then
A≡A is isomorphic to A.
Trento’2005 – p. 37/4
Language Induced Equivalence
An equivalence relation ≡1 refines equivalence relation ≡2
provided x ≡1 y ⇒ x ≡2 y (Set theoretically, ≡1 ⊆≡2 .)
Intuitively, ≡1 makes finer partitions than ≡2 .
Trento’2005 – p. 38/4
Language Induced Equivalence
An equivalence relation ≡1 refines equivalence relation ≡2
provided x ≡1 y ⇒ x ≡2 y (Set theoretically, ≡1 ⊆≡2 .)
Intuitively, ≡1 makes finer partitions than ≡2 .
Definition (Language Induced Equivalence) Given R ⊆ Σ∗ ,
x ≡R y
def
=
∀z ∈ Σ∗ . (xz ∈ R ⇔ yz ∈ R).
Trento’2005 – p. 38/4
Language Induced Equivalence
An equivalence relation ≡1 refines equivalence relation ≡2
provided x ≡1 y ⇒ x ≡2 y (Set theoretically, ≡1 ⊆≡2 .)
Intuitively, ≡1 makes finer partitions than ≡2 .
Definition (Language Induced Equivalence) Given R ⊆ Σ∗ ,
x ≡R y
def
=
∀z ∈ Σ∗ . (xz ∈ R ⇔ yz ∈ R).
Proposition ≡R is right congruent.
Proposition ≡R refines R.
Trento’2005 – p. 38/4
Language Induced Equivalence
An equivalence relation ≡1 refines equivalence relation ≡2
provided x ≡1 y ⇒ x ≡2 y (Set theoretically, ≡1 ⊆≡2 .)
Intuitively, ≡1 makes finer partitions than ≡2 .
Definition (Language Induced Equivalence) Given R ⊆ Σ∗ ,
x ≡R y
def
=
∀z ∈ Σ∗ . (xz ∈ R ⇔ yz ∈ R).
Proposition ≡R is right congruent.
Proposition ≡R refines R.
Proposition(Coarseness) Let ≡ be right-congruent refining
R. Then, ≡ ⊆ ≡R .
Trento’2005 – p. 38/4
Myhill-Nerode Theorem
Let R ⊆ Σ∗ . The following statements are equivalent.
1. R is regular
2. There exists a Myhill-Nerode relation refinining R.
3. The relation ≡R is of finite index.
The automaton A≡R gives the minimal DFA for R.
Trento’2005 – p. 39/4
State Minimization is optimal
Let A recognise R. Consider the quotient automaton
M = A/ ≈ as before, and assume that it has no
inaccessible states.
Lemma x ≡R y
⇔
x ≡M y
Trento’2005 – p. 40/4
Bisimulation
Postponed to the End of course.
See Kozen Supplementary Lecture B.
Trento’2005 – p. 41/4