✖

Differenza di linguaggi regolari

Siano L1, L2 due linguaggi regolari. Dimostreremo che anche la loro differenza L = L1 ∖ L2 è un linguaggio regolare.

Idea

In realtà non c’è molto da dimostrare. Per la differenza di due insiemi vale infatti la relazione

L1∖L2=L1∩L2′,

dove L2′ è il complemento del linguaggio L2. Dagli articoli sull’intersezione di linguaggi regolari e sul complemento di un linguaggio regolare sappiamo che i linguaggi regolari sono chiusi rispetto a entrambe le operazioni. Questo significa che sappiamo costruire un automa che accetta l’intersezione di linguaggi e un automa che accetta il complemento di un linguaggio. Possiamo quindi usarli per costruire un automa che accetta il linguaggio L1 ∩ L2′, che è proprio il linguaggio L1 ∖ L2.

Esempio

Consideriamo questo automa A1, che accetta tutte le parole con un numero pari di 1:

e l’automa A2, che accetta le parole con un numero dispari di 0:

Costruiamo l’automa che accetta la differenza di questi linguaggi. Ci serve l’automa A2′, complemento dell’automa A2. Basta scambiare gli stati finali e quelli non finali:

Ora non resta che costruire l’automa A che accetta l’intersezione dei linguaggi L(A1) e L(A2′):

Fonti

Capitoli: Chiusura dei linguaggi regolari, Unione di linguaggi regolari, Intersezione di linguaggi regolari, Differenza di linguaggi regolari, Complemento di un linguaggio regolare, Concatenazione di linguaggi regolari, Chiusura di Kleene di un linguaggio regolare