Equivalence of Regular Expressions 

Source of the RE 

> s1 := "(0 + 1 ) * . (1 . 1 + ( 0 + 1 . ( 0 + 1 ) ) )";
s2 := "(0.0* + (1 + 0.0* .1 ).((0 + 1.1* .0).0 * .1)* .(1.1* + (0 + 1.1* .0).0*))";
 

`:=`(s1, (17.1.2.1)
 

`:=`(s2, (17.1.2.1)
 

> nfa5b:=RE2NFA(s2):
nfa5c:=RE2NFA(s1):
isEmptyNFA(intersectNFA(nfa5b,complementNFA(nfa5c)));
isEmptyNFA(intersectNFA(nfa5c,complementNFA(nfa5b)));
 

> transitionGraph(simplifyDFA(minimalDFA(NFA2DFA(nfa5b))));
transitionGraph(simplifyDFA(minimalDFA(NFA2DFA(nfa5c))));
 

true
 

true
 

Plot_2d
 

Plot_2d
 

> nops(op(1,nfa5b)) * nops(op(1,NFA2DFA(nfa5c)));
 

450 (17.1.2.2)
 

>
 

Another good example about equivalance of expressions 

> nfa2 := NFA({q0, q1, q2, q3, q4, q5, q6, q7},{"0", "1"},table([(q2, "0") = {q4, q7}, (q1, "0") = {q2, q6}, (q0, lambda) = {q7}, (q7, lambda) = {q2}, (q5, "0") = {q2, q6}, (q0, "0") = {q2, q3}, (q4, "1") = {q0, q5}, (q2, lambda) = {q4}, (q3, lambda) = {q6}, (q1, lambda) = {q5}, (q0, "1") = {q2, q4, q5}, (q4, "0") = {q4, q7}, (q5, lambda) = {q1}, (q6, lambda) = {q0}, (q3, "0") = {q1, q6}, (q4, lambda) = {q5}, (q1, "1") = {q0, q6}]),q0,{q0, q1, q7});
 

`:=`(nfa2, NFA({q0, q3, q4, q5, q1, q2, q6, q7}, {
`:=`(nfa2, NFA({q0, q3, q4, q5, q1, q2, q6, q7}, {
`:=`(nfa2, NFA({q0, q3, q4, q5, q1, q2, q6, q7}, {
`:=`(nfa2, NFA({q0, q3, q4, q5, q1, q2, q6, q7}, {
`:=`(nfa2, NFA({q0, q3, q4, q5, q1, q2, q6, q7}, {
(17.1.2.3)
 

> transitionGraph(nfa2);
 

Plot_2d
 

> #NFA2RE(nfa2,result=string);
NFA2RE(nfa2);
 

RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
RE([`(`, lambda, `+`,
(17.1.2.4)
 

> dfa2:=simplifyDFA(minimalDFA(NFA2DFA(nfa2)));
transitionGraph(dfa2);
 

`:=`(dfa2, DFA({_q_1}, {
 

Plot_2d
 

> NFA2RE(dfa2,result=string);
 

( ( 1 + 0 ) * ) (17.1.2.5)
 

> isUniversalNFA(nfa2);
 

true (17.1.2.6)