Study Material 2IT70 Finite Automata and Process Theory Technische Universiteit Eindhoven June 11, 2014
Study Material
2IT70 Finite Automata and Process Theory
Technische Universiteit Eindhoven
June 11, 2014
Study material
Updated reader: Chapters 2, 3 and 5
Hopcroft, Motwani & Ullman (2001)
Background reading: Chapters 1-7More specific: 2.2, 2.3, 2.5; 3.1, 3.2; 4.1-3; 5.1, 5.2; 6.1-3; 7.2
Exercises
Proofs
Theorem 2.13: from NFA to DFATheorem 2.27: Pumping Lemma for regular languagesTheorem 3.20: from CFG to parse treeTheorem 3.23: from parse tree to CFGTheorem 3.25: from CFG to PDATheorem 3.33: intersection of context-free and regular
2 IT70 (2014) Study Material 2 / 45
Finite Automata
and Regular Languages
2IT70 Finite Automata and Process Theory
Technische Universiteit Eindhoven
July 16, 2014
Deterministic finite automaton
DFA D = (Q, Σ, δ, q0, F )
Q finite set of states
Σ finite alphabet
δ ∶ Q ×Σ→ Q transition function
q0 ∈ Q initial state
F ⊆ Q set of final states
L(D) = {w ∈ Σ∗ ∣ ∃q ∈ F ∶ (q0,w) ⊢∗D(q, ε)}
2 IT70 (2014) Finite Automata and Regular Languages 4 / 45
Language accepted by DFA
q0 q1 q2 q3
b
a
a a,b
ba
b
accepted language {w ∈ {a,b}∗ ∣ w has a substring aab }
2 IT70 (2014) Finite Automata and Regular Languages 5 / 45
Path sets
DFA D, state q
pathsetD(q) = {w ∈ Σ∗ ∣ (q0,w) ⊢
∗D(q, ε)}
q0 q1 q2
0
1
0
1
0,1
L = {w ∈ {0,1}∗ ∣ w has no substring 11}
state pathset regular expressions
q0 no substring 11 and no last symbol 1 0∗ (10+)∗
q1 no substring 11 and last symbol 1 0∗ (10+)∗1
q2 substring 11 (0 + 1)∗11(0 + 1)∗
2 IT70 (2014) Finite Automata and Regular Languages 6 / 45
Non-deterministic finite automaton with τ -moves
silent action τ ∉ Σ
NFA N = (Q, Σ, →, q0, F )
Q finite set of states
Σ finite alphabet
→ ∶ Q ×Στ → Q
transition relation
q0 ∈ Q initial state
F ⊆ Q set of final states
q0
q1
q2τ
aa a
b
language accepted by NFA N
L(N) = {w ∈ Σ∗ ∣ ∃q ∈ F ∶ (q0,w) ⊢∗N(q, ε)}
2 IT70 (2014) Finite Automata and Regular Languages 7 / 45
One of two theorems (Theorem 2.13)
theorem
if L = L(N) for some NFA, then L = L(D) for some DFA
proof say N = (QN , Σ, →N , q0N,FN)
ε-closure E(q) = { q̄ ∈ QN ∣ (q, ε) ⊢∗N(q̄, ε)} for q ∈ QN
2 IT70 (2014) Finite Automata and Regular Languages 8 / 45
One of two theorems (Theorem 2.13)
theorem
if L = L(N) for some NFA, then L = L(D) for some DFA
proof say N = (QN , Σ, →N , q0N,FN)
ε-closure E(q) = { q̄ ∈ QN ∣ (q, ε) ⊢∗N(q̄, ε)} for q ∈ QN
put D = (QD , Σ, δD , q0D, FD) with
set of states QD = P(QN)
transtion function δD(Q,a) = ⋃{E(q̄) ∣ q ∈ Q, qaÐ→N q̄ }
initial state q0D= E(q0
N)
final states FD = {Q ⊆ QN ∣ Q ∩ FN ≠ ∅}
2 IT70 (2014) Finite Automata and Regular Languages 8 / 45
One of two theorems (Theorem 2.13)
theorem
if L = L(N) for some NFA, then L = L(D) for some DFA
proof say N = (QN , Σ, →N , q0N,FN)
ε-closure E(q) = { q̄ ∈ QN ∣ (q, ε) ⊢∗N(q̄, ε)} for q ∈ QN
put D = (QD , Σ, δD , q0D, FD) with
set of states QD = P(QN)
transtion function δD(Q,a) = ⋃{E(q̄) ∣ q ∈ Q, qaÐ→N q̄ }
initial state q0D= E(q0
N)
final states FD = {Q ⊆ QN ∣ Q ∩ FN ≠ ∅}
it holds that (q,w) ⊢∗N(q′, ε) iff
∃Q ′ ⊆ QN ∶ (E(q),w) ⊢∗D(Q ′, ε) and q′ ∈ Q ′
2 IT70 (2014) Finite Automata and Regular Languages 8 / 45
One of two theorems (Theorem 2.13)
theorem
if L = L(N) for some NFA, then L = L(D) for some DFA
proof say N = (QN , Σ, →N , q0N,FN)
ε-closure E(q) = { q̄ ∈ QN ∣ (q, ε) ⊢∗N(q̄, ε)} for q ∈ QN
put D = (QD , Σ, δD , q0D, FD) with
set of states QD = P(QN)
transtion function δD(Q,a) = ⋃{E(q̄) ∣ q ∈ Q, qaÐ→N q̄ }
initial state q0D= E(q0
N)
final states FD = {Q ⊆ QN ∣ Q ∩ FN ≠ ∅}
it holds that (q,w) ⊢∗N(q′, ε) iff
∃Q ′ ⊆ QN ∶ (E(q),w) ⊢∗D(Q ′, ε) and q′ ∈ Q ′
then L(N) = L(D) follows ⊠2 IT70 (2014) Finite Automata and Regular Languages 8 / 45
Another NFA-to-DFA example
0
1
2
τa
τ
b
a
ac
{0,1,2}
{1,2}
{2}
∅
b
c
aa
b
c
a
b c
a,b, c
2 IT70 (2014) Finite Automata and Regular Languages 9 / 45
Regular expressions
class REΣ of regular expressions over alphabet Σ
1 and 0
a for all a ∈ Σ
(r1 + r2) and (r1 ⋅ r2) for all r1, r2 ∈ REΣ
(r∗) for all r ∈ REΣ
interpretation as languages over Σ
2 IT70 (2014) Finite Automata and Regular Languages 10 / 45
Language of a regular expression
r L(r)
0 ∅
1 {ε}
a {a}
r1 + r2 L(r1) ∪L(r2)
r1 ⋅ r2 L(r1)L(r2)
r∗ L(r)∗
contatenation: L1L2 = {w1w2 ∣ w1 ∈ L1, w2 ∈ L2 }iteration: L∗ = {w1⋯wk ∣ k ⩾ 0, w1, . . . ,wk ∈ L}
2 IT70 (2014) Finite Automata and Regular Languages 11 / 45
Finding a RE for a DFA
q0 q1
q2
a
b
ba
b
a
2 IT70 (2014) Finite Automata and Regular Languages 12 / 45
Finding a RE for a DFA
qs q0 q1
q2 qf
1 a
b
ba
b
a 1
1
2 IT70 (2014) Finite Automata and Regular Languages 12 / 45
Finding a RE for a DFA
qs q0 q1
qf
1
bb
a + bab
a1
b
2 IT70 (2014) Finite Automata and Regular Languages 12 / 45
Finding a RE for a DFA
qs q0
qf
1
bb + (a + ba)b∗a
b + (a + ba)b∗
2 IT70 (2014) Finite Automata and Regular Languages 12 / 45
Finding a RE for a DFA
qs
qf
(bb + (a + ba)b∗a)∗(b + (a + ba)b∗)
2 IT70 (2014) Finite Automata and Regular Languages 12 / 45
Finding a RE for a DFA
q0 q1
q2
a
b
ba
b
a
qs q0 q1
q2 qf
1 a
b
ba
b
a 1
1
qs q0 q1
qf
1
bb
a + bab
a1
b
qs q0
qf
1
bb + (a + ba)b∗a
b + (a + ba)b∗
qs
qf
(bb + (a + ba)b∗a)∗(b + (a + ba)b∗)
2 IT70 (2014) Finite Automata and Regular Languages 12 / 45
Finding a RE for a DFA
q0 q1
q2
a
b
ba
b
a
qs q0 q1
q2 qf
1 a
b
ba
b
a 1
1
qs q0 q1
qf
1
bb
a + bab
a1
b
qs q0
qf
1
bb + (a + ba)b∗a
b + (a + ba)b∗
qs
qf
(bb + (a + ba)b∗a)∗(b + (a + ba)b∗)
R(D) = (bb + (a + ba) ⋅ b∗ ⋅ a)∗(b + (a + ba) ⋅ b∗)
2 IT70 (2014) Finite Automata and Regular Languages 12 / 45
Regular languages
L ⊆ Σ∗ is regular iff L = L(N) for some NFA N
theorem the following statement are equivalent
L is regular
L = L(D) for some DFA D
L = L(r) for some RE r
proof combine earlier results ⊠
2 IT70 (2014) Finite Automata and Regular Languages 13 / 45
Closure properties
theorem
if L1 and L2 are regular, then L1 ∪ L2 is regular
if L is regular, then L∗ is regular
if L1 and L2 are regular, then L1 ∩ L2 is regular
proof use a suitable representation for L1, L2 and L ⊠
2 IT70 (2014) Finite Automata and Regular Languages 14 / 45
The Pumping Lemma (Theorem 2.27)
theorem if L ⊆ Σ∗ is a regular language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃x , y , z ∶ w = x y z ∧ ∣x y ∣ ⩽ m ∧ ∣y ∣ > 0 ∶
∀i ⩾ 0 ∶ x y iz ∈ L
2 IT70 (2014) Finite Automata and Regular Languages 15 / 45
The Pumping Lemma (Theorem 2.27)
theorem if L ⊆ Σ∗ is a regular language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃x , y , z ∶ w = x y z ∧ ∣x y ∣ ⩽ m ∧ ∣y ∣ > 0 ∶
∀i ⩾ 0 ∶ x y iz ∈ L
proof suppose L = L(D) for DFA D
take m the number of states of D ⊠
2 IT70 (2014) Finite Automata and Regular Languages 15 / 45
Example non-regular languages
Pumping Lemma: if L ⊆ Σ∗ is a regular language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃x , y , z ∶ w = x y z ∧ ∣x y ∣ ⩽ m ∧ ∣y ∣ > 0 ∶
∀i ⩾ 0 ∶ x y iz ∈ L
the language L1 = { anbn ∣ n ⩾ 0} is not regular
the language L2 = {ww ∣ w ∈ {a,b}∗ } is not regular
2 IT70 (2014) Finite Automata and Regular Languages 16 / 45
Example non-regular languages
Pumping Lemma: if L ⊆ Σ∗ is a regular language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃x , y , z ∶ w = x y z ∧ ∣x y ∣ ⩽ m ∧ ∣y ∣ > 0 ∶
∀i ⩾ 0 ∶ x y iz ∈ L
the language L1 = { anbn ∣ n ⩾ 0} is not regular
for any m > 0, consider ambm
the language L2 = {ww ∣ w ∈ {a,b}∗ } is not regular
2 IT70 (2014) Finite Automata and Regular Languages 16 / 45
Example non-regular languages
Pumping Lemma: if L ⊆ Σ∗ is a regular language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃x , y , z ∶ w = x y z ∧ ∣x y ∣ ⩽ m ∧ ∣y ∣ > 0 ∶
∀i ⩾ 0 ∶ x y iz ∈ L
the language L1 = { anbn ∣ n ⩾ 0} is not regular
for any m > 0, consider ambm
the language L2 = {ww ∣ w ∈ {a,b}∗ } is not regular
for any m > 0, consider ambamb
2 IT70 (2014) Finite Automata and Regular Languages 16 / 45
Push-Down Automata & Context-Free Languages
2IT70 Finite Automata and Process Theory
Technische Universiteit Eindhoven
July 16, 2014
Formal definition
push-down automaton P = (Q, Σ, ∆, ∅, →, q0, F )
Q states
Σ input alphabet, τ ∉ Σ
∆ stack alphabet, ∅ ∉∆ empty stack symbol
→ ⊆ Q ×Στ ×∆∅ ×∆∗×Q transition relation
with Στ = Σ ∪ {τ} and ∆∅ =∆ ∪ {∅}
q0 ∈ Q initial state
F ⊆ Q final states
accepted language
L(P) = {w ∈ Σ∗ ∣ ∃q ∈ F ∃x ∈∆∗∶ (q0,w , ε) ⊢∗P(q, ε, x)}
2 IT70 (2014) Push-Down Automata & Context-Free Languages 18 / 45
Invariant table
q0 q1 q2 q3a[∅/1] b[1/ε] τ[∅/ε]
a[1/11] b[1/ε]
L(P) = { anbn ∣ n ⩾ 1}
2 IT70 (2014) Push-Down Automata & Context-Free Languages 19 / 45
Invariant table
q0 q1 q2 q3a[∅/1] b[1/ε] τ[∅/ε]
a[1/11] b[1/ε]
L(P) = { anbn ∣ n ⩾ 1}
state q input w stack x
q0 ε ε
q1 an 1n 1 ⩽ n
q2 anbm 1n−m 1 ⩽ m ⩽ n
q3 anbn ε 1 ⩽ n
if (q,w , x) in invariant table then (q0,w , ε) ⊢∗P(q, ε, x)
2 IT70 (2014) Push-Down Automata & Context-Free Languages 19 / 45
Language of a CFG
context-free grammar G = (V , T , R , S )
V variables and T terminals
R ⊆ V ×(V ∪T )∗ production rules A→ α
S ∈ V start symbol
productions ⇒G ⊆ (V∪T ) × (V∪T )
γ ⇒G γ′ if γ = β1Aβ2, A→ α rule of G , γ′ = β1αβ2
production sequences
γ0 ⇒G γ1 ⇒G ⋯⇒G γn
language of a variable
LG(A) = {w ∈ T∗ ∣ A ⇒∗
Gw }
language of the grammar
L(G) = LG(S)
2 IT70 (2014) Push-Down Automata & Context-Free Languages 20 / 45
Avoiding the inductive proofs
lemma CFGs G1 = (V1, T1, R1, S1 ) and G2 = (V2, T2, R2, S2 )
moreover V1 and V2 disjoint
define CFG G = ({S} ∪V1 ∪ V2, T1 ∪T2, R , S )
if R = {S → S1 ∣ S2} ∪R1 ∪ R2 then L(G) = L(G1) ∪L(G2)
if R = {S → S1S2} ∪R1 ∪ R2 then L(G) = L(G1) ⋅L(G2)
if R = {S → ε ∣ S1S} ∪ R1 then L(G) = L(G1)∗
2 IT70 (2014) Push-Down Automata & Context-Free Languages 21 / 45
Avoiding the inductive proofs (cont.)
CFG G with production rules
S → S1 ∣ S2S1 → aB B → ε ∣ bBS2 → bA A→ ε ∣ aA
then L(G) = { abn, bam ∣ n,m ⩾ 0}
proof use the lemma
LG(A) = {am ∣ m ⩾ 0} and LG(B) = {b
n ∣ n ⩾ 0}
LG(S1) = {a} ⋅ {bn ∣ n ⩾ 0} and LG(S2) = {b} ⋅ { a
m ∣ m ⩾ 0}
L(G) = { abn ∣ n ⩾ 0} ∪ {bam ∣ m ⩾ 0} ⊠
2 IT70 (2014) Push-Down Automata & Context-Free Languages 22 / 45
Context-free languages
language L is context-free if L = L(G) for CFG G
{ anbn ∣ n ⩾ 0} and {wwR ∣ w ∈ {0,1}∗ } are context-free
but not regular
2 IT70 (2014) Push-Down Automata & Context-Free Languages 23 / 45
Yield of a parse tree
CFG G = (V , T , R , S )
set PTG of all parse trees of G
[X ] single node tree, X ∈ V ∪T
[A→ ε] two node tree, root A, leaf ε for rule A→ ε ∈ R
[A→ PT 1,PT 2, . . . ,PT k]
rule A→ X1⋯Xk ∈ Rparse trees PTi with root Xi
yield function yield ∶ PTG → (V ∪T )∗
yield([X ]) = X yield([A → ε]) = ε
yield([A → PT 1, . . . ,PT k]) = yield(PT 1) ⋅ . . . ⋅ yield(PT k)
parse tree PT is complete if yield(PT ) ∈ T ∗
2 IT70 (2014) Push-Down Automata & Context-Free Languages 24 / 45
A parse tree with yield ()(())
S
S S
( S )
ε
( S )
( S )
ε
2 IT70 (2014) Push-Down Automata & Context-Free Languages 25 / 45
A parse tree with yield ()(())
S
S S
( S )
ε
( S )
( S )
ε
2 IT70 (2014) Push-Down Automata & Context-Free Languages 25 / 45
From CFG to parse trees (Theorem 3.20)
theorem CFG G = (V , T , R , S )
A ⇒∗G
w implies w = yield(PT )
for parse tree PT with root A
proof by induction on n :
A ⇒n
Gw implies ∃PT ∈ PTG(A)∶w = yield(PT )
for all A ∈ V and w ∈ T ∗ ⊠
thus L(G)={w ∈ T ∗ ∣ S ⇒∗G
w }
⊆{yield(PT ) ∣ PT complete parse tree of G , root S }
2 IT70 (2014) Push-Down Automata & Context-Free Languages 26 / 45
From parse tree to CFG (Theorem 3.23)
theorem CFG G
for parse tree PT , root A and yield w : Aℓ⇒∗
Gw
proof induction on the height of the parse tree PT ⊠
thus { yield(PT ) ∣ PT complete parse tree of G , root S }⊆
{w ∈ T ∗ ∣ S ⇒∗G
w }=L(G)
2 IT70 (2014) Push-Down Automata & Context-Free Languages 27 / 45
From CFG to PDA (Theorem 3.25)
theorem CFG G = (V , T , R , S )
a PDA P exists such that L(P) = L(G)
proof P = ({q0,q1,q2}, T , V ∪T , ∅,→,q0,{q2}) with
(1) q0τ[∅/S]Ð→ q1
(2) q1a[a/ε]Ð→ q1 for all a ∈ T (matching step)
(3) q1τ[A/α]Ð→ q1 for all A→ α ∈ R (production step)
(3) q1τ[∅/ε]Ð→ q2
claim γℓ⇒∗
Gw iff (q1,w , γ) ⊢∗
P(q1, ε, ε)
2 IT70 (2014) Push-Down Automata & Context-Free Languages 28 / 45
PDA accepting on empty stack
PDA P = (Q, Σ, ∆, D, →, q0 ) accepting on empty stack
Q finite set of states
Σ input alphabet
∆ data alphabet or stack alphabet
D ∈∆ stack bottom symbol,
→ ⊆ Q ×Στ ×∆ ×∆∗×Q transitions where Στ = Σ ∪ {τ}
q0 ∈ Q initial state.
accepted language N (P) = {w ∈ Σ∗ ∣ ∃q ∈ Q ∶ (q0,w ,D) ⊢∗P(q, ε, ε)}
2 IT70 (2014) Push-Down Automata & Context-Free Languages 29 / 45
From ePDA to CFG
ePDA P = (Q,Σ,∆,→,q0,D) gives CFG G = (V , Σ, →, S)
V = {S} ∪ { [qd q′′ ] ∣ q,q′′ ∈ Q, d ∈∆}
production rules
S → [q0Dq′] for all q′ ∈ Q
[qd q′′ ]→ a[p0d1p1][p1 d2p2]⋯[pk−1dk pk ]
if qa[d/d1⋯dk ]Ð→ P q′
with p0,p1, . . . ,pk ∈ Q such that p0 = q′ and pk = q
′′
[qd q′′ ]→ [p0d1p1][p1d2p2]⋯[pk−1dk pk ]
if qτ[d/d1⋯dk ]Ð→ P q′
with q′′,p1, . . . ,pk ∈ Q such that p0 = q′ and pk = q
′′
[qd q′′ ]: state q reaches state q′′ when processing stack symbol d
2 IT70 (2014) Push-Down Automata & Context-Free Languages 30 / 45
An example construction
q0 q1a[D/1D]
a[1/11] b[1/ε]
τ[D/ε]
2 IT70 (2014) Push-Down Automata & Context-Free Languages 31 / 45
An example construction
q0 q1a[D/1D]
a[1/11] b[1/ε]
τ[D/ε]
S → [q0Dq0] ∣ [q0Dq1]
[q0Dq0] → a[q11q0][q0Dq0] ∣ a[q11q1][q1Dq0]
[q0Dq1] → a[q11q0][q0Dq1] ∣ a[q11q1][q1Dq1]
[q11q0] → a[q11q0][q0 1q0] ∣ a[q11q1][q1 1q0]
[q11q1] → a[q11q0][q0 1q1] ∣ a[q11q1][q1 1q1]
[q11q1] → b
[q1Dq1] → ε
2 IT70 (2014) Push-Down Automata & Context-Free Languages 31 / 45
Closure properties of context-free languages
language L is context-free if L = L(G) for CFG G
theorem context-free languages L1, L2 and L
(a) the union L1 ∪ L2 is also context-free
(b) the concatenation L1 ⋅ L2 is also context-free
(c) the Kleene closure L∗ is also context-free
2 IT70 (2014) Push-Down Automata & Context-Free Languages 32 / 45
Intersection of context-free and regular (Theorem 3.33)
theorem context-free language L1, regular language L2then L1 ∩ L2 is context-free
proof PDA P = (Q1, Σ, ∆, ∅, →P , q10 , F ) for L1
DFA D = (Q2, Σ, δ, q20 , F2) for L2
define PDA P ′ = (Q1 ×Q2, Σ, ∆, ∅, →P′ , (q10 ,q
20), F1 × F2) by
(q1,q2)a[d/x]Ð→ P′ (q
′
1,q′
2) iff q1a[d/x]Ð→ P q′1 and δ(q2,a) = q
′
2
(q1,q2)τ[d/x]Ð→ P′ (q
′
1,q2) iff q1τ[d/x]Ð→ P q′1
claim ((q1,q2),w , z) ⊢∗P′((q̄1, q̄2), ε, z
′) iff
(q1,w , z) ⊢∗P(q̄1, ε, z
′) and (q2,w) ⊢∗
D(q̄2, ε) ⊠
2 IT70 (2014) Push-Down Automata & Context-Free Languages 33 / 45
Pumping lemma for context-free languages
theorem if L ⊆ Σ∗ is a context-free language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃u, v , x , y , z ∶ w = uv x y z ∧ ∣v x y ∣ ⩽ m ∧ ∣v y ∣ > 0 ∶
∀i ⩾ 0 ∶ uv i x y iz ∈ L
2 IT70 (2014) Push-Down Automata & Context-Free Languages 34 / 45
Some languages that are not context-free
Pumping Lemma: if L ⊆ Σ∗ is a context-free language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃u, v , x , y , z ∶ w = uv x y z ∧ ∣v x y ∣ ⩽ m ∧ ∣v y ∣ > 0 ∶
∀i ⩾ 0 ∶ uv i x y iz ∈ L
the language L1 = { anbncn ∣ n ⩾ 0} is not context-free
the language L2 = {ww ∣ w ∈ {a,b}∗ } is not context-free
2 IT70 (2014) Push-Down Automata & Context-Free Languages 35 / 45
Some languages that are not context-free
Pumping Lemma: if L ⊆ Σ∗ is a context-free language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃u, v , x , y , z ∶ w = uv x y z ∧ ∣v x y ∣ ⩽ m ∧ ∣v y ∣ > 0 ∶
∀i ⩾ 0 ∶ uv i x y iz ∈ L
the language L1 = { anbncn ∣ n ⩾ 0} is not context-free
for any m > 0, consider ambmcm
the language L2 = {ww ∣ w ∈ {a,b}∗ } is not context-free
2 IT70 (2014) Push-Down Automata & Context-Free Languages 35 / 45
Some languages that are not context-free
Pumping Lemma: if L ⊆ Σ∗ is a context-free language then
∃m > 0 ∶
∀w ∈ L, ∣w ∣ ⩾ m ∶
∃u, v , x , y , z ∶ w = uv x y z ∧ ∣v x y ∣ ⩽ m ∧ ∣v y ∣ > 0 ∶
∀i ⩾ 0 ∶ uv i x y iz ∈ L
the language L1 = { anbncn ∣ n ⩾ 0} is not context-free
for any m > 0, consider ambmcm
the language L2 = {ww ∣ w ∈ {a,b}∗ } is not context-free
for any m > 0, consider ambmambm
2 IT70 (2014) Push-Down Automata & Context-Free Languages 35 / 45
Labeled Transition Systems andBisimulation
2IT70 Finite Automata and Process Theory
Technische Universiteit Eindhoven
July 16, 2014
Labeled transition system
labeled transition system S = (Q, Σ, →S , q0 )
finite/infinite set of states Q
finite/infinite set of actions Σ
transition relation →S ⊆ Q ×Στ ×Q
initial state q0
transitions qαÐ→S q′ for action α ∈ Στ
2 IT70 (2014) Labeled Transition Systems and Bisimulation 37 / 45
Example LTS
a buffer of capacity 2
ε0 1
00 11
10 01
in1 in0
out1 out0
in0
in1
in0
out0
in1out1
out0
out1
2 IT70 (2014) Labeled Transition Systems and Bisimulation 38 / 45
An infinite LTS
a counter process
q0 q1 q2 q3 q4
p1 p2 p3 p4
up up up
down down down
downdown
up
down
2 IT70 (2014) Labeled Transition Systems and Bisimulation 39 / 45
Branching bisimulation
LTS S = (Q, Σ, →S , q0 )
branching bisimulation relation R ⊆ Q ×Q for S
(i) if R(q,p) and qaÐ→S q′ then exist p̄,p′ ∈ Q such that
pτÐ→∗
Sp̄ and p̄
aÐ→S p′ with R(q, p̄) and R(q′,p′)
(ii) symmetric condition if R(q,p) and paÐ→S p′
2 IT70 (2014) Labeled Transition Systems and Bisimulation 40 / 45
Branching bisimulation
LTS S = (Q, Σ, →S , q0 )
branching bisimulation relation R ⊆ Q ×Q for S
(i) if R(q,p) and qaÐ→S q′ then exist p̄,p′ ∈ Q such that
pτÐ→∗
Sp̄ and p̄
aÐ→S p′ with R(q, p̄) and R(q′,p′)
(ii) symmetric condition if R(q,p) and paÐ→S p′
(iii) if R(q,p) and qτÐ→S q′ then either exist p̄,p′ ∈ Q such that
pτÐ→∗
Sp̄ and p̄
τÐ→S p′ with R(q, p̄) and R(q′,p′) or
exists p′ ∈ Q such that pτÐ→∗
Sp′ with R(q,p′) and R(q′,p′)
(iv) symmetric condition if R(q,p) and pτÐ→S p′
states q,p ∈ Q branching bisimilar if R(q,p)
2 IT70 (2014) Labeled Transition Systems and Bisimulation 40 / 45
Branching bisimulation (cont.)
s1
t1
s2
s ′2
t2
a τ
a
s1
t1
s2
s ′2
t2
τ τ
τ
s1
t1
s2
τ
left-to-right transfer condition for visible actions
left-to-right transfer condition for silent steps
2 IT70 (2014) Labeled Transition Systems and Bisimulation 41 / 45
Coloring for branching bisimulation
q0
q4
q1
q5
q2
q6
q3
τa
τ
b
a
b b
τ
0
0
0
0
0
0
0
2 IT70 (2014) Labeled Transition Systems and Bisimulation 42 / 45
Coloring for branching bisimulation
q0
q1 q2 q3
q4 q5 q6
τa
τ
b
a
b b
τ
1
1 2 2
3 3 3
2 IT70 (2014) Labeled Transition Systems and Bisimulation 42 / 45
Coloring for branching bisimulation
q0
q1 q2 q3
q4 q5 q6
τa
τ
b
a
b b
τ
4
5 6 6
3 3 3
2 IT70 (2014) Labeled Transition Systems and Bisimulation 42 / 45
Coloring for branching bisimulation
q0
q1 q2 q3
q4 q5 q6
τa
τ
b
a
b b
τ
7
8 6 6
3 3 3
2 IT70 (2014) Labeled Transition Systems and Bisimulation 42 / 45
Composing LTS: an abstract example
a
b
S1
c dS2
processes S1 and S2
2 IT70 (2014) Labeled Transition Systems and Bisimulation 43 / 45
Composing LTS: an abstract example
a
b
S1
c dS2
a
b
a
b
a
b
c d
c d
c d
S1 ∥∅ S2
process S1 ∥∅ S2
2 IT70 (2014) Labeled Transition Systems and Bisimulation 43 / 45
Composing LTS: an abstract example
a
b
S1
c dS2
a
b
a
b
a
b
c d
c d
c d
e
f
S1 ∥γ S2
process S1 ∥γ S2 where γ(a, c) = e and γ(b,d) = f
2 IT70 (2014) Labeled Transition Systems and Bisimulation 43 / 45
Composing LTS: an abstract example
a
b
S1
c dS2
e
f
∂H(S1 ∥γ S2)
process ∂H(S1 ∥γ S2) where γ(a, c) = e, γ(b,d) = f ,H = {a,b, c ,d}
2 IT70 (2014) Labeled Transition Systems and Bisimulation 43 / 45
Composing LTS: an abstract example
a
b
S1
c dS2
τ
f
τI (∂H(S1 ∥γ S2))
process τI (∂H(S1 ∥γ S2)) where γ(a, c) = e, γ(b,d) = f ,H = {a,b, c ,d} and I = {e}
2 IT70 (2014) Labeled Transition Systems and Bisimulation 43 / 45
Study Material
2IT70 Finite Automata and Process Theory
Technische Universiteit Eindhoven
June 11, 2014
Study material
Updated reader: Chapters 2, 3 and 5
Hopcroft, Motwani & Ullman (2001)
Background reading: Chapters 1-7More specific: 2.2, 2.3, 2.5; 3.1, 3.2; 4.1-3; 5.1, 5.2; 6.1-3; 7.2
Exercises
Proofs
Theorem 2.13: from NFA to DFATheorem 2.27: Pumping Lemma for regular languagesTheorem 3.20: from CFG to parse treeTheorem 3.23: from parse tree to CFGTheorem 3.25: from CFG to PDATheorem 3.33: intersection of context-free and regular
2 IT70 (2014) Study Material 45 / 45