✖

Säännöllisten kielten erotus

Olkoon meillä kaksi säännöllistä kieltä L1, L2. Todistamme, että niiden erotus L = L1 ∖ L2 on myös säännöllinen kieli.

Idea

Itse asiassa ei ole juuri mitään todistettavaa. Kahden joukon erotukselle pätee nimittäin seuraava yhtälö:

L1∖L2=L1∩L2c,

jossa L2c on kielen L2 komplementti. Säännöllisten kielten leikkauksesta ja säännöllisen kielen komplementista kertovista luvuista tiedämme, että säännölliset kielet ovat suljettuja kummankin operaation suhteen. Se tarkoittaa, että voimme rakentaa automaatin, joka hyväksyy kielten leikkauksen, ja automaatin, joka hyväksyy kielen komplementin. Näitä automaatteja voimme siis käyttää sellaisen automaatin rakentamiseen, joka hyväksyy kielen L1∩L2c, joka on samalla kieli L1 ∖ L2.

Esimerkki

Olkoon meillä tämä automaatti A1, joka hyväksyy kaikki sanat, joissa on parillinen määrä ykkösiä:

ja automaatti A2, joka hyväksyy sanat, joissa on pariton määrä nollia:

Rakennamme automaatin, joka hyväksyy näiden kielten erotuksen. Tarvitsemme siis automaatin A2′, joka on automaatin A2 komplementti. Vaihdamme vain lopputilat ja ei-hyväksyvät tilat keskenään:

Nyt enää rakennamme automaatin A, joka hyväksyy kielten L(A1) ja L(A2′) leikkauksen:

Lähteet

Luvut: Säännöllisten kielten sulkeumaominaisuudet, Säännöllisten kielten yhdiste, Säännöllisten kielten leikkaus, Säännöllisten kielten erotus, Säännöllisen kielen komplementti, Säännöllisten kielten konkatenaatio, Säännöllisen kielen Kleenen tähti