- 81 Views
- Uploaded on
- Presentation posted in: General

Nonregularity Proofs

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Nonregularity Proofs

L10PLemma

(Parallel Simulation)

(Rabin and Scott’s work)

(Collapsing graphs; Structural Induction)

(S. Kleene’s work)

(Construction)

(Solving linear equations)

L10PLemma

- Closure under complementation. (DFAs)
- Closure under union, concatenation, and Kleene star. (NFA-ls, Regular expression.)
- Consequence:
Closure under intersection by De Morgan’s Laws.

- Consequence:

L10PLemma

Consider pairs of strings:

IfL were regular,then there exists a DFA M

accepting L with the following property:

L10PLemma

CLAIM:

JUSTIFICATION: Otherwise, from the definition of DFA,

which contradicts the earlier conclusion.

In order to satisfy

the machine M must have a unique state for every i.

Thus, M must have infinite number of states, if L

is regular. This violates the definition of DFA.

So, L must be non-regular.

L10PLemma

- Regular languages are closed under set-intersection.
- Note that regularity is a property of a collection, and not a property of an individual string in the collection.

L1=bit strings with even parity

L2=bit strings with number of 1’s divisible by 3

L=bit strings with number of 1’s a multiple of 6

L10PLemma

- If R is a regular language and C is context-free, then may not be regular.
- Proof:

- Show that
- is not regular.
- Proof: If L were regular, ought to be regular. However, is known to be non-regular. Hence, L cannot be regular.

L10PLemma

- If R is a regular language and C is context-free, then can be regular.
- Proof:

- L = {/\, ab, ba, aabb, abab, abba, baba, bbaa, …}
- a*b* = {/\, a, b, aa, ab, bb,…, aabb,…}
- C = {/\, ab, aabb, …}
- intersect(a*b*, C) =intersect(L, a*b*) = C
- union(a*b*, C) = a*b* ; union(L, C) = L

L10PLemma

- Is 46551 divisible by 46?
- Is 46554 divisible by 46?
- Is 46552 divisible by 46?
Necessary vs sufficient condition

L10PLemma

- It is a necessary condition.
- Every regular language satisfies it.
- If a language violates it, it is not regular.
- RL => PL not PL => not RL

- It is not a sufficient condition.
- Not every non-regular language violates it.
- not RL =>? PL or not PL (no conclusion)

- Not every non-regular language violates it.

L10PLemma

b

a

q0

a

q1

b

b

a

q2

q3

a,b

L10PLemma

Note,

So,

L10PLemma

- Given a “sufficiently” long string, the states of a DFA must repeat in an accepting computation. These cycles can then be used to predict (generate) infinitely many other strings in (of) the language.
Pigeon-Hole Principle

L10PLemma

- Let L be a regular language that is accepted by a DFA M with k states. Let z be any string in L with . Then z can be decomposed as uvw with

L10PLemma

For all sufficiently long strings (z)

These exists non-null prefix (uv)

and substring (v)

For all repetitions of the substring (v),

we get strings in the language.

L10PLemma

- If there exists an arbitrarily long string s L, and for each decomposition s = uvw, there exists an i such that , then L is non-regular.

Negation of the necessary condition:

L10PLemma