Operazioni su linguaggi
Tra due linguaggi e qualsiasi sono definite:
- Unione:
- Concatenazione: , con
- Star: , che conterrà
Chiusure
La classe dei linguaggi regolari è chiusa rispetto alle precedenti operazioni, ovvero se e sono regolari allora è regolare anche il risultato delle operazioni su di essi.
Unione
Dati due linguaggi regolari e , la chiusura dell'unione si può dimostrare perchè:
Questo è possibile perchè e sono simulabili in parallelo, assumendo che :
- , composto dagli stati iniziali di e
L'assunzione per cui non è limitante perchè basta aggiungere uno stato pozzo, per esempio
ha alfabeto , e si può trasformare in con:
Concatenazione
Se due linguaggi e sono regolari allora esistono gli NFA e che li rappresentano, e concatenandoli si crea l'NFA per cui e si dimostra la chiusura della concatenazione:
Quindi, se e , allora è definito:
Star
Come per la concatenazione, la chiusura di star rispetto ad si dimostra costruendo un NFA :