The Gateway to Computer Science Excellence
+25 votes

Choose the correct alternatives (more than one may be correct) and write the corresponding letters only:

Which of the following regular expression identities is/are TRUE?

  1. $r^{(^*)} =r^*$
  2. $(r^*s^*)=(r+s)^*$
  3. $(r+s)^* = r^* + s^*$
  4. $r^*s^* = r^*+s^*$
in Theory of Computation by
edited by | 2.7k views
Anser is given as B only . I think A is also True . Correct me if wrong
A's RHS can accept null strings, LHS can't.
if r=ab then r*=abababa.....

why option a is not correct ?



r(*) = r*



pls tell the difference between above two

u have problem in r(*) right?

take an example a(a*) where the strings are {a,aa,aaa....}

Similarly r(*) where * is separate from r, it cannot accept epsilon

but r* can accept epsilon too

if r=a(a*)

a(a*)(*) in this what is the meaning of  concatenation of  * with a(a*) .what does it represent?

a(a*) and a(a*)(*) same
but similarly (a+b)* and (a*b*)* are both similar
those are not contradictory

got it.if

r(*) = r* this is the case then both are same

confirm this too pls

does a(*) means a.(fi*) - a ??
@PEKKA how b is correct..?

R1= (r*s*)*  !=   R2=(r+s)*  

In R1 "sr" can never be generated but in R2 " sr " can be generated
how can we get "sr " using lhs of option B?

please @arjunsir through some light
(r*s*)* = (r*s*)(r*s*) = (s)(r)
thanks a lot got it

How $\left ( r^{*}s^{*} \right )^{*}$ = $\left ( r + s \right )^{*}$ ? Any proof in simple words !!

6 Answers

+37 votes
Best answer
  1. is the answer
  2. RHS generates $\Sigma^*$ while LHS can't generate strings where $r$ comes after $s$ like $sr, srr$ etc. LHS $\subset$ RHS.
  3. LHS generates $\Sigma^*$ while RHS can't generate strings where $r$ comes after an $s$. RHS $\subset$ LHS.
  4. LHS contains all strings where after an $s$, no $r$ comes. RHS contains all strings of either $r$ or $s$ but no combination of them. So, RHS $\subset$ LHS.
edited by

Can you please give any source which contain  r(*)=r*.Previous year question book gave answer b

and their b is (r*s*)*=(r+s)*


search question no (XVII)

(r*s*)*=(r+s)* but in case of  (r*s*) !(r+s)* 

@Anu No. I don't have a proof. In fact I choose i only because all other options are false. In case (b) is with a *, I would choose (b) as there is ambuiguity over (a). I doubt if they meant (empty string*) with (*) in which case (a) is false.

**** Disclaimer : I am not sure that its right or wrong . So if its wrong please don`t blame me :P

   I think  r() !=  r∗  ,

let take a example A(B*) . In this case (B*) will be evaluated first because its with in the bracket . And now consider this R(*) then  (*) will be evaluated first but it contain only ∅ and  ∅*= ∈ .             So R.(∈) = R . peace 

^But why you took {}* and not $\epsilon^*$ ? That seems more appropriate. $\epsilon^* = \epsilon$, so answer would still be same.
yes answer might be same but i think ( for safety purpose i say " i think " what if i got wrong :D ) it`s not right thing to do .

suppose L= {} this language means two things either there is no final state or final state is unreachable from initial state .

And for L={∈} this language means without any input we can reach the final state ,So ∅ and ∈  is very much different . But in this case ∅*=∈*=∈ . peace
+21 votes

B is only correct

why not A?

A's RHS can accept null strings, LHS can't.
if $r=ab$ then $r^*=abababa$.....

edited by
r(*) =ab(*) =ab

Is this the only string possible in LHS?

Or abababa...  Also possible?

What does it exactly mean (*)...?

@Amitabh Tiwari 1

What does it exactly mean by (*)...?
Please clear above doubt
A is not correct got it but how  B is correct ??

(P* q*)* = (P* + q*)* Then how B option is correct ??
someone please clarify what does (*) mean?
+1 vote

Only option B is Correct.

0 votes
Option B is only true .

A is not true as

r (*) cant accpt null string, the precedence is for () first, means it will be on an empty string rather than r

Whereas r* accepts null string

But i am nit getting how C is not true ?

I mean (r+s)* accepts all strings as r*+s* . Doesnt it ?


 (r+s)*  accept rs but 

r*+s* cant



(r+s)* means any string of a,b

r* + s* means any string of any length of either 'r' or 's'

0 votes

People who are confused what's going on in this question please refer this

Option A is wrong as right hand side can produce null string while left hand side cannot. 

Now coming to answer B , there can be 2 situation with this 

1. Mistake in presenting option B

Option given there is wrong as (r*s*) cannot generate rsr 

2. Answer will be correct if we have (r*s*)* =(r+s)* you can refer Ullman section 3.4.6 

3. If we think like this option B can be correct


Taking closure on both the sides we get


We know thst (a*)*= a* check identities

Hence (r*s*)*= (r+s)* 

Others please check if my third interpretation is valid and correct me if I am wrong .

@Arjun, @Sreshta


can u please tell me what's the difference between LHS & RHS in option A ???

about point 3 of your answer - 

can we do like that. I mean here * is considered as an operator(kleen closure), not a constant. I'm not sure about it, but may be.....


0 votes


B) LHS: (r*s*)*={ε ,r,s,rs....}

RHS:(r+s)*={ε ,r,s,rs,sr...} ,sr can't be generated by wrong.

C)(r+s)* - generates all string over {r,s}

(r*+s*) can't generate anything as combination of sr, so wrong.

D) r*s*= {ε ,r,s,rs..} but r*+s* cannot generate rs , so wrong.


Related questions

Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true
52,345 questions
60,470 answers
95,272 users