##### Operations on Regular Languages :

**1. Union :** If L1 and If L2 are two regular languages, their union L1 ∪ L2 will also be regular.

For example, L1 = {a^{n} | n ≥ 0} and L2 = {b^{n} | n ≥ 0}

L3 = L1 ∪ L2 = {a^{n} ∪ b^{n} | n ≥ 0} is also regular.

**2. Intersection :** If L1 and If L2 are two regular languages, their intersection L1 ∩ L2 will also be regular.

For example,

L1= {a^{m} b^{n} | n ≥ 0 and m ≥ 0} and L2= {a^{m} b^{n} ∪ b^{n} a^{m} | n ≥ 0 and m ≥ 0}

L3 = L1 ∩ L2 = {a^{m} b^{n} | n ≥ 0 and m ≥ 0} is also regular.

**3. Concatenation :** If L1 and If L2 are two regular languages, their concatenation L1.L2 will also be regular.

For example,

L1 = {a^{n} | n ≥ 0} and L2 = {b^{n} | n ≥ 0}

L3 = L1.L2 = {a^{m} . b^{n} | m ≥ 0 and n ≥ 0} is also regular.

**4. Kleene Closure :** If L1 is a regular language, its Kleene closure L1* will also be regular.

For example,

L1 = (a ∪ b)

L1* = (a ∪ b)*

**5. Complement :** If L(G) is regular language, its complement L’(G) will also be regular. Complement of a language can be found by subtracting strings which are in L(G) from all possible strings.

For example,

L(G) = {a^{n} | n > 3}

L’(G) = {a^{n} | n <= 3}

**Note :**

Two regular expressions are equivalent if languages generated by them are same. For example, (a+b*)* and (a+b)* generate same language. Every string which is generated by (a+b*)* is also generated by (a+b)* and vice versa.

__Power of a String:__

Consider ∑ = {0, 1}. The following are the power of an alphabet over input alphabet ∑.

(L)∑ = {null}: zero length string

(L)∑ = {0, 1}: set of 1 length string

(L)∑ = {01, 10, 11}: set of 2 length string