Homomorphisms (Lecture 10) : Transparency No. ?-0 Transparency No. 6-1
Homomorphisms (Lecture 10) : Transparency No. ?-0 Transparency No. 6-1
Chapter 6
Homomorphisms (lecture 10)
Homomorphisms
Def: A homomorphism is a mapping h: S* -> G* s.t. for all x,y in S* h(xy) = h(x) h(y) (10-1) h(e) = e (10.2) Note: (10.2) is not needed since h(e ) = h(e e ) = h(e ) h(e ) => |h(e )| = |h(e )|+|h(e )| ==> |h(e )| = 0 ==> h(e ) = e . Property 1: Any homomorphism h:S* -> G* is uniquely determined by its value on S. I.e., if g,h: S* ->G* are morphism s.t. g(a)=h(a) for all a in S, then g = h (I.e., g(x) = h(x) for all x in S*). Pf: if x = x1x2xn => h(x) = h(x1x2xn) = h(x1)h(x2)h(xn) = g(x1)g(xn) = g(x1x2xn) = g(x). Conclusion: to specify a homomorphism h: S*->G* completely, it suffices to specify its values on S.
Transparency No. 6-2
Homomorphisms
h: S* -> G*: a homomorphim; A: a subset of S*; B: a subset of G* h(A) =def {h(x) |x in A} G* is the image of A under h. h-1(B) =def {x | h(x) in B} S* is the preimage of B under h. Theorem 10: h: S*->G* a homomorphism; B: a regular language over G ==> h-1(B) is regular too. Pf : M=(Q, G ,d,s,F) : a DFA s.t. L(M) = B => let M = (Q, S ,d,s,F) where d(q,a) = D(q,h(a)) for all a in S. Property of M: D(q,x) = D(q,h(x)) for all q in Q and x in S* ----- (10.3) by simple induction on |x|, left as an exercise. => for all x in S*, x L(M) iff D(s,x) F iff D (s,h(x)) F iff x L(M) = B => h-1(B) = L(M) is regular. QED
Transparency No. 6-3
Homomorphisms
Example:
B= L(M) M:
0 1
0 1
0,1
==> M = ?
Homomorphisms
Theorem 10.2
h : S* -> G*: a homoporphism; A S*: a regular set => h(A) is regular. Let a be any reg. expr. S.t. L(a ) = A. Let a be the reg. expr. obtained from a by replacing every letter a in S appearing in a with the string h(a) in G*. eg: if h(a) =000, h(b) = 11, a = [(a+b)*ab] => a = (000+11)*00011 a can be defined inductively as follows: _____ (exercise) Property: for any reg. expr. b over S. L(b) = h(L(b)) --- (10.4) Hence L(a) = h(L(a)) = h(A) is regular. To prove 10.4, we require: for all C,D S* and any family of subsets Ci S*, i I, h(CD) = h(C) h(D) --- (10.5) h(U i I Ci) = U i I h(Ci) --- (10.6) ==> can be proved direct from definition. Transparency No. 6-5
Homomorphisms
proof of 10.4:
pf: by induction on b: case 1: b = a S: L(a) = L(h(a)) = {h(a)} = h(L(a)) b = => L() = L() = {} = h({}) = h(L()). b = e (note: since e = * L(e) can be covered by other
case )
Ind. cases: 1. L((b+g)) = L(b + g) = L(b) U L(g) = h(L(b)) U h(L(g)) = h(L(b ) U L(r)) = h(L(b +r)) 2. L((b g)) = L(b g) = L(b )L(g) = h(L(b )) h(L(g)) = h(L(b )L(g)) = h(L(bg)) 3. L((b*)) = L((b)*) = U k 0 (L(b))k = U k 0 (h(L(b)))k = U k0 h(L(b)k) = h( U k 0 L(b)k) = h( L(b)*) = h(L(b*)).
Transparency No. 6-6
Homomorphisms
Example:
A= L(M) M:
0 1
0 1
0,1
Homomorphisms
Quiz
Q1: Is it true that h(A) is regular => A is regular ? Notes: 1. h(A) = B does not mean h-1(B) = A. Hence Q1 is not a consequence of Theorem 10.1. 2. counter example: Let A = {anbn | n 0 } h: {a,b}* -> {a,b}* with h(a)=h(b) = a => h(A) = {a2n | n 0 } = B is regular, but A can be shown to be not regular. 3. h-1(B) = ______ A. ans: {x {a,b}* | |x| = 2n }. Exercise: Given a homomorphism h:S* G* and a FA M, find a FA M s.t. L(M) = h (L(M)).
Transparency No. 6-8
Homomorphisms
Def: A NFA with e-transition is a structure M = (Q,S,e,d,S,F) where Q,S,d,S,F are the same as in NFAs and e is a special symbol not in S (standing for the empty string e). for each M, define Me = (Q,SU{e}, d,S,F) to be a usual NFA over the alphabet SU{e}. Define acceptance for automata with e-transitions as follows: for all x in S*, M accepts x if $ y in (SU{e})* s.t. Me accepts y under usual definition and x is obtained from y by erasing all e from y. I.e., x = h(y) where h(SU{e})* -> S* with h(a) = a for a in S and h(e) = e. In other words, L(M) =def h(L(Me)). Hence if A is accepted by a NFA-e machine M => A = L(M) and B = L(Me) (SU{e})* is regular with h(B) = A. => A is regular too. Transparency No. 6-9
Homomorphisms
x, y: two bit strings, A: a set of bit strings; k 0 : any number. H(x,y) = # of positions at which they differ if |x| = |y|, or infinite if |x| |y|. H(x,A) = min y A H(x,y) Nk(A) = {x | H(x,A) k } is the set of strings of Haming distance at most k from A. Example: 1. N0({000}) = {000}, 2. N1({000}) = ? 3. N2({000}) = ? 4. N2({001, 11}) = {0,1}3 - {110} U {0,1}2. Ex3Hw2: if A is regular, then so is Nk(A) for any k 0.
Homomorphisms
Applications of homomorphisms
0 1
0 0
1 1
1 0
define top, btm : S2 -> S with top( x ) = x and btm( x ) = y. y y top and btm can be extended to homomorphism (S x S )* -> S * eg: 0 0 0 1 top( ) = 0001 and btm( 0 0 0 1 ) = 1011 1 0
1 1
1 0 1
Dk =def {x (SxS )* | x contains no more than k occurrences of (0,1) or (1,0) } is certainly regular (why?)
= {x (S x S )* | H(top(x), btm(x)) k }.
Transparency No. 6-11
Homomorphisms
Now let A be any regular set over S => Nk(A) = top (btm-1(A) Dk) where btm-1(A) is the set of (x,y) with y A, Dk is the set of (x,y) with H(x,y) k btm-1(A) Dk is the set of (x,y) with y A and H(x,y) k top (btm-1(A) Dk) is the set of x s.t. $ y A with H(x,y) k = the set of x with H(x,A) k = Nk(A). Hence Nk(A) is regular if A is regular.