0% found this document useful (0 votes)
37 views12 pages

Homomorphisms (Lecture 10) : Transparency No. ?-0 Transparency No. 6-1

This document discusses homomorphisms between formal languages. It defines a homomorphism as a mapping between languages that preserves concatenation and the empty string. It then proves several properties of homomorphisms, including that the preimage of a regular language under a homomorphism is regular, and the image of a regular language under a homomorphism is regular. Examples are provided to illustrate homomorphisms and their properties. The document also discusses how automata with epsilon transitions can recognize homomorphic images of regular languages.

Uploaded by

jaansyda
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views12 pages

Homomorphisms (Lecture 10) : Transparency No. ?-0 Transparency No. 6-1

This document discusses homomorphisms between formal languages. It defines a homomorphism as a mapping between languages that preserves concatenation and the empty string. It then proves several properties of homomorphisms, including that the preimage of a regular language under a homomorphism is regular, and the image of a regular language under a homomorphism is regular. Examples are provided to illustrate homomorphisms and their properties. The document also discusses how automata with epsilon transitions can recognize homomorphic images of regular languages.

Uploaded by

jaansyda
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 12

Formal Language and Automata Theory

Chapter 6
Homomorphisms (lecture 10)

Transparency No. ?-0 6-1

Homomorphisms

Homomorphisms (the definition)

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

More about 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:

EX: h:{a,b}* -> {0,1}* s.t. h(a) = 01 and h(b) = 10.

B= L(M) M:

0 1

0 1

0,1

==> M = ?

Transparency No. 6-4

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:

EX: h:{0,1}* -> {a,b}* s.t. h(0) = ab and h(1) = ba.

A= L(M) M:

0 1

0 1

0,1

==> h(A) is accepted by M = ?

Transparency No. 6-7

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

Automata with e-transiiton

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

Application of homomorphisms : Haming distance

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.

Transparency No. 6-10

Homomorphisms

Applications of homomorphisms

S = {0,1}; S x S = { 00, 01,10,11} = {

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

Applications of homomorphisms (contd)

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.

Transparency No. 6-12

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy