Consider the following identities for regular expressions : (a) (r + s)* = (s…

2016

Consider the following identities for regular expressions :

(a) (r + s)* = (s + r)*

(b) (r*)* = r*

(c) (r* s*)* = (r + s)*

Which of the above identities are true ?

Answer: D. (a), (b) and (c)All three identities are true. Short proofs: Identity (a): (r + s)* = (s + r)* because union is commutative: r + s = s + r, so taking Kleene star on both…

  1. A.

    (a) and (b) only

  2. B.

    (b) and (c) only

  3. C.

    (c) and (a) only

  4. D.

    (a), (b) and (c)

Attempted by 189 students.

Show answer & explanation

Correct answer: D

All three identities are true. Short proofs:

  • Identity (a): (r + s)* = (s + r)* because union is commutative: r + s = s + r, so taking Kleene star on both sides yields equal languages.

  • Identity (b): (r*)* = r* because r* already contains all finite concatenations of strings from r (including the empty string), so applying the Kleene star again does not add any new strings.

  • Identity (c): (r* s*)* = (r + s)*. Proof:

    - If a string belongs to (r* s*)*, it is a concatenation of blocks each of which is some number of r-strings followed by some number of s-strings; expanding those blocks shows the string is a concatenation of pieces each from r or s, so it lies in (r + s)*.

    - Conversely, any string in (r + s)* is a concatenation of items each from r or s. Group adjacent items of the same type into runs; each run lies in r* or s*, and pairing runs as r*-then-s* (allowing empty runs at ends) expresses the whole string as a concatenation of blocks from r* s*, so it lies in (r* s*)*.

Therefore, all three identities (a), (b), and (c) hold.

A video solution is available for this question — log in and enroll to watch it.

Explore the full course: Mppsc Assistant Professor Computer Science Paper 2

Loading lesson…