✖

Differens av reguljära språk

Låt L1, L2 vara två reguljära språk. Vi bevisar att deras differens L = L1 ∖ L2 också är ett reguljärt språk.

Idén

Egentligen finns det inte mycket att bevisa. För differensen av två mängder gäller nämligen följande samband:

L1∖L2=L1∩L2′,

där L2′ är komplementet till språket L2. Av avsnitten om snitt av reguljära språk och om komplementet till ett reguljärt språk vet vi att reguljära språk är slutna under båda de här operationerna. Det betyder att vi kan konstruera en automat som accepterar snittet av språk och en automat som accepterar komplementet till ett språk. Dem kan vi använda för att konstruera en automat som accepterar språket L1 ∩ L2′, som ju också är språket L1 ∖ L2.

Exempel

Låt oss ta den här automaten A1, som accepterar alla ord som innehåller ett jämnt antal ettor:

och automaten A2, som accepterar ord som innehåller ett udda antal nollor:

Vi konstruerar en automat som accepterar differensen av de här språken. Då behöver vi en automat A2′ som är komplementet till automaten A2. Vi byter bara plats på sluttillstånden och de icke-accepterande tillstånden:

Nu konstruerar vi bara automaten A som accepterar snittet av språken L(A1) och L(A2′):

Källor

Kapitel: Slutenhet hos reguljära språk, Union av reguljära språk, Snitt av reguljära språk, Differens av reguljära språk, Komplement till ett reguljärt språk, Konkatenering av reguljära språk, Kleenestjärnan av ett reguljärt språk