I have this simple automata :
Then I write my system :
L0 = aL0 + bL1
L1 = bL0 + aL1 + Ɛ
Using Arden's Theorem I can simplify my expression :
L0 = a*bL1
L1 = bL0 + aL1 + Ɛ
Then :
L1 = b(a*bL1) + aL1 + Ɛ
L1 = b(a*b+a)L1 + Ɛ
L1 = b(a*b+a)*
It seems to be incorrect but I don't understand why, can someone explain me where I'm wrong?
Your problem is that L0 and L1 represent the languages of strings that lead to L0 and L1, not the languages of strings that lead from L0 and L1 to an accepting state. Therefore, the empty string is not equivalent to L1, the accepting state, but to L0, the initial state. Therefore,
L0 = aL0 + bL1 + Ɛ
L1 = bL0 + aL1
Then
L0 = a*(bL1 + Ɛ)
L1 = bL0 + aL1
Next
L0 = a*(bL1 + Ɛ)
L1 = ba*(bL1 + Ɛ) + aL1
= ba*bL1 + ba* + aL1
= (ba*b + a)L1 + ba*
= (ba*b + a)*ba*
This regular expression does appear to be correct.