title: Techniques for simplifying a regular expression **by hand**
body: <p>I'm trying to prove that the RE</p>
  
  <p><code>s(bs)*[(abb*a*)*ab]*aa(a∪b)</code> where <code>s=b*a*ab</code></p>
  
  <p>can be simplified to</p>
  
  <p><code>(a∪b)*abaa(a∪b)</code>,</p>
  
  <p>but all the general transformations I know such as <code>(ab)*a=a(ba)*</code> or <code>(a*b)*a*=(a∪b)*</code> seem to have no effect.</p>
  
  <p>So the questions are:</p>
  
  <ol>
  <li>Is a step-by-step transformation process here viable? If so, can you show me how it is done?</li>
  <li>If other types of technique are needed for the proof, what are they?</li>
  <li>Is there a clear &amp; comprehensive reference explaining techniques used in simplifying formal RE's?</li>
  </ol>
  
  <p>Thanks.</p>