Sia sia un DFA . Senza perdita di generalità, assumere . Costruiamo un ε-NFA per nel modo seguente:D=(Q,Σ,δ,q0,F)LqS,qF∉QN=(Q∪{qS,qF},Σ,Δ,qS,{qF})L2
Trova ogni percorso in da a qualsiasi . Per ciascuno di questi percorsi costruisci i percorsi per (ovvero costruisci tutte le "parti intermedie" del percorso). Questo può essere fatto in modo efficace. Costruisci combinando tutti questi percorsi, insieme a:Dq0f∈Fpk:q0=qk,0−→−αk,1qk,1−→−αk,2…−→−αk,iqk,i−→−−αk,i+1…−→−−αk,nkqk,nkp(i)k:qk,i−→−−αk,i+1qk,i+1−→−−αk,i+2…−→−−−αk,nk−iqk,nk−i0≤i≤nk2Δ
- (qS,ε,qk,i) per tutti come soprai
- (qk,nk−i,ε,qF) per tutti come soprai
L(N) è regolare per costruzione.
Schizzo di prova che : Lascia . Per costruzione sappiamo che deve corrispondere almeno sui percorsi sopra. Ciascuno di questo percorso appartiene a un percorso in , che contiene un prefisso e un suffisso aggiuntivi di lunghezza . Scegli come parola descritta da questo prefisso e quella descritta dal suffisso. Troviamo che , con . Con un ragionamento simile che troviamo per ogni un percorso in . Permettetemi essere la lunghezza edL(N)=L2w∈L(N)wp(i)kDixyxwy∈L|x|=|y|=iw∈L2Nixyappartenente a . per alcune forme .wp(i)kkw
Quindi .L(N)=L2