Download Closure Properties of Regular Languages: Complement and Union and more Slides Theory of Automata in PDF only on Docsity!
Chapter Three:
Closure Properties
for
Regular Languages
Once we have defined some languages formally, we can consider combinations and modifications of those languages: unions, intersections, complements, and so on. Such combinations and modifications raise important questions. For example, is the intersection of two regular languages also regular—capable of being recognized directly by some DFA?
Language Complement
- For any language L over an alphabet Σ, the
complement of L is
- Example:
- Given a DFA for any language, it is easy to
construct a DFA for its complement
L = { x ∈ Σ *^ | x ∉ L }
L = 0 x | x ∈ { } 0 , 1
= strings that start with 0
L = 1 x | x ∈ { } 0 , 1
∪{}ε = strings that donÕt start with 0
Example
q 0
0^ q^1
1
0,
q 2 0,
q 0
0^ q^1
1
0,
q 2 0,
L = 1 x | x ∈ (^) { } 0 , 1
∪{}ε
L = 0 x | x ∈ (^) { } 0 , 1
Theorem 3.
- Let L be any regular language
- By definition there must be some DFA M = ( Q , Σ, δ, q 0 , F ) with L ( M ) = L
- Define a new DFA M' = ( Q , Σ, δ, q 0 , Q-F )
- This has the same transition function δ as M , but for any string x ∈ Σ* it accepts x if and only if M rejects x
- Thus L ( M' ) is the complement of L
- Because there is a DFA for it, we conclude that the complement of L is regular
The complement of any regular language is a regular language.
Closure Properties
- A shorter way of saying that theorem: the
regular languages are closed under
complement
- The complement operation cannot take us
out of the class of regular languages
- Closure properties are useful shortcuts: they
let you conclude a language is regular without
actually constructing a DFA for it
Language Intersection
- L 1 ∩ L 2 = { x | x ∈ L 1 and x ∈ L 2 }
- Example:
- L 1 = {0 x | x ∈ {0,1}*} = strings that start with 0
- L 2 = { x 0 | x ∈ {0,1}*} = strings that end with 0
- L 1 ∩ L 2 = { x ∈ {0,1}* | x starts and ends with 0}
- Usually we will consider intersections of
languages with the same alphabet, but it
works either way
- Given two DFAs, it is possible to construct a
DFA for the intersection of the two languages
- We'll make a DFA that keeps track of the pair
of states ( q i , r j ) the two original DFAs are in
- Initially, they are both in their start states:
q 0 ,r 0
0
1
r 0 r 1
1
0
1
0
q 0
0^ q^1
1
0,
q 2 0, {0 x | x ∈ {0,1}} { x 0 | x ∈ {0,1}}
r 0 r 1
1
0
1
0
q 0
0^ q^1
1
0,
q 2 0, {0 x | x ∈ {0,1}} { x 0 | x ∈ {0,1}}
- Eventually state-pairs repeat; then we're
almost done:
q 0 ,r 0
0
1
q 1 ,r 1
q 2 ,r 0
1
0 0
1
q 1 ,r 0
q 2 ,r (^1 )
1
0
1
r 0 r 1
1
0
1
0
q 0
0^ q^1
1
0,
q 2 0, {0 x | x ∈ {0,1}} { x 0 | x ∈ {0,1}}
- For intersection, both original DFAs must
accept:
q 0 ,r 0
0
1
q 1 ,r 1
q 2 ,r 0
1
0 0
1
q 1 ,r 0
q 2 ,r (^1 )
1
0
1
Theorem 3.
- Let L 1 and L 2 be any regular languages
- By definition there must be DFAs for them:
- M 1 = ( Q , Σ, δ 1 , q 0 , F 1 ) with L ( M 1 ) = L 1
- M 2 = ( R , Σ, δ 2 , r 0 , F 2 ) with L ( M 2 ) = L 2
- Define a new DFA M 3 = ( Q × R , Σ, δ, ( q 0 , r 0 ), F 1 × F 2 )
- For δ, define it so that for all q ∈ Q , r ∈ R, and a ∈ Σ, we have δ(( q , r ), a ) = (δ 1 ( q,a ), δ 2 ( r,a ))
- M 3 accepts if and only if both M 1 and M 2 accept
- So L ( M 3 ) = L 1 ∩ L 2 , so that intersection is regular
If L 1 and L 2 are any regular languages, L 1 ∩ L 2 is also a regular language.
Notes
- Formal construction assumed that the
alphabets were the same
- It can easily be modified for differing alphabets
- The alphabet for the new DFA would be Σ 1 ∩ Σ 2
- Formal construction generated all pairs
- When we did it by hand, we generated only those pairs actually reachable from the start pair
- Makes no difference for the language accepted
Language Union
- L 1 ∪ L 2 = { x | x ∈ L 1 or x ∈ L 2 (or both)}
- Example:
- L 1 = {0 x | x ∈ {0,1}*} = strings that start with 0
- L 2 = { x 0 | x ∈ {0,1}*} = strings that end with 0
- L 1 ∪ L 2 = { x ∈ {0,1}* | x starts with 0 or ends with 0 (or both)}
- Usually we will consider unions of languages with the same alphabet, but it works either way
If L 1 and L 2 are any regular languages, L 1 ∪ L 2 is also a regular language.
Theorem 3.
- Proof 1: using DeMorgan's laws
- Because the regular languages are closed for intersection and complement, we know they must also be closed for union:
L 1 ∪ L 2 = L 1 ∩ L 2