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 :