✖

Verschil van reguliere talen

Neem twee reguliere talen L1, L2. We bewijzen dat hun verschil L = L1 ∖ L2 ook een reguliere taal is.

Idee

Eigenlijk valt er niet veel te bewijzen. Voor het verschil van twee verzamelingen geldt namelijk de volgende betrekking:

L1∖L2=L1∩L2c,

waarbij L2c het complement van de taal L2 is. Uit de hoofdstukken over de doorsnede van reguliere talen en het complement van een reguliere taal weten we dat reguliere talen onder beide bewerkingen afgesloten zijn. Dat betekent dat we een automaat kunnen construeren die de doorsnede van talen accepteert en een automaat voor het complement van een taal. Die automaten kunnen we dus gebruiken om een automaat te construeren die de taal L1∩L2c accepteert, en dat is tegelijk de taal L1 ∖ L2.

Voorbeeld

Neem deze automaat A1, die alle woorden accepteert die een even aantal enen bevatten:

en automaat A2, die woorden accepteert die een oneven aantal nullen bevatten:

We construeren een automaat die het verschil van deze talen accepteert. We hebben dus een automaat A2′ nodig die het complement van automaat A2 is. We wisselen gewoon de eindtoestanden en de niet-eindtoestanden om:

Nu hoeven we alleen nog de automaat A te construeren die de doorsnede van de talen L(A1) en L(A2′) accepteert:

Bronnen

Hoofdstukken: Afgeslotenheid van reguliere talen, Vereniging van reguliere talen, Doorsnede van reguliere talen, Verschil van reguliere talen, Complement van een reguliere taal, Concatenatie van reguliere talen, Afsluiting van een reguliere taal