uitwerkingen van de opgaven uit het dictaat

Formeel Denken Opgavenbundel
Engelbert Hubbers en Freek Wiedijk
10 december 2014
Inhoudsopgave
1 Propositielogica
2
2 Predikaatlogica
10
3 Talen en automaten
20
4 Discrete wiskunde
40
5 Modale logica
58
1
1
Propositielogica
Opgave 1.A Vind zinnen uit de formele taal die hetzelfde betekenen als de volgende zinnen.
(i) Het regent niet, noch schijnt de zon.
Oplossing: ¬R ∧ ¬Z: het regent niet en de zon schijnt niet.
(ii) De zon schijnt, tenzij het regent
Oplossing: De betekenis van het woord ‘tenzij’ is een beetje onduidelijk. Meestal wordt
het gelezen als ‘De zon schijnt, behalve als het regent’. Vandaar dat er verschillende
mogelijkheden zijn. In het bijzonder zijn deze verschillende oplossingen niet logisch
equivalent (zie definitie 1.11).
• R → ¬Z: als het regent schijnt de zon niet (merk op dat hier niets gezegd wordt
over wanneer de zon dan wel schijnt: komt dat overeen met de betekenis van
‘tenzij’ ?),
• ¬R → Z: als het niet regent schijnt de zon,
• Z ↔ ¬R: de zon schijnt dan en slechts dan als het niet regent.
(iii) Of de zon schijnt, of het regent. (We bedoelen dus niet allebei)
Oplossing: Ook hier zijn er verschillende mogelijkheden, maar in dit geval zijn de formules wel logisch equivalent. De eerste versie lijkt iets meer op de originele vraag dan
de tweede.
• (Z ∨ R) ∧ ¬(Z ∧ R): de zon schijnt of het regent, en niet allebei tegelijk,
• (Z ∧ ¬R) ∨ (¬Z ∧ R): de zon schijnt en het regent niet of de zon schijnt niet en
het regent wel.
Merk op dat de formule Z ↔ ¬R dezelfde waarheidstabel heeft als de hierboven genoemde oplossingen. Maar omdat de structuur van deze formule helemaal niet meer
lijkt op de oorspronkelijke zin, vinden we deze formule minder goed als vertaling.
Waarschijnlijk ten overvloede maar simpelweg Z ∨ R is dus fout, want dit sluit het
‘allebei’ niet uit.
(iv) Er is alleen een regenboog als de zon schijnt en het regent.
Oplossing: Deze oplossing heeft de voorkeur: RB → (Z ∧ R): als er een regenboog is,
dan schijnt de zon en regent het, want alleen als de zon schijnt en het regent is er een
regenboog.
De volgende optie vinden we niet zo goed, maar nog wel enigszins verdedigbaar: RB ↔
(Z ∧ R): er is een regenboog dan en slechts dan als de zon schijnt en het regent. Hier
wordt het woordje ‘alleen’ wel erg sterk ge¨ınterpreteerd: de bewering geldt blijkbaar
ook de andere kant op.
Verder is het duidelijk dat (Z ∧ R) → RB een te zwakke vertaling is van de zin. Dit is
namelijk de vertaling van ‘Er is een regenboog als de zon schijnt en het regent’ en dus
zou het woordje ‘alleen’ niets toevoegen.
(v) Als ik buiten ben, dan word ik nat, mits het regent.
Oplossing: Het woordje ‘mits’ kan hier worden gezien als ‘en als’. Dat levert weer een
aantal logisch equivalente formules. De eerste sluit het beste aan bij de exacte tekst in
de vraag.
• Bui → (R → N ): als ik buiten ben en als het dan regent dan word ik nat,
• R → (Bui → N ): als het regent en als ik dan buiten ben dan word ik nat,
2
• (Bui ∧R) → N : als ik buiten ben en het regent dan word ik nat.
Het woordje ‘mits’ kan ook worden gezien als ‘op voorwaarde dat’ wat min of meer
dezelfde betekenis heeft als ‘alleen als’ en dus kun je ook deze formule gebruiken:
• (Bui → N ) → R: als ik nat word als ik buiten ben, dan regent het.
• Bui → (N → R): als ik buiten ben en als ik dan nat word, dan regent het.
Opgave 1.B Kun je f ↔ g ook uitdrukken met behulp van de andere symbolen?
Oplossing: De formule f ↔ g is ook te schrijven als (f → g) ∧ (g → f ) of als (f ∨ g) →
(f ∧ g). Ook (f ∧ g) ∨ (¬f ∧ ¬g) is logisch equivalent.
Opgave 1.C Vertaal de volgende zinnen uit de formele taal naar het Nederlands:
(i) R ↔ Z
Oplossing: Het regent dan en slechts dan als de zon schijnt. (Of iets gebruikelijker in
het spraakgebruik: Het regent precies als de zon schijnt.) Merk op dat bijvoorbeeld
de zin ‘Als het regent dan schijnt de zon en als de zon schijnt regent het’ een prima
vertaling is van de formule (R → Z) ∧ (Z → R) en die formule is weliswaar equivalent
aan de formule R ↔ Z, maar toch is die zin geen goede vertaling van de oorspronkelijke
formule R ↔ Z.
(ii) RB → (R ∧ Z)
Oplossing: Als er een regenboog is, regent het en schijnt de zon.
(iii) Bui → ¬ Bin
Oplossing: Als ik buiten ben dan ben ik niet binnen.
(iv) Bui ∨ Bin
Oplossing: Ik ben buiten of ik ben binnen, of allebei.
Opgave 1.D Schrijf de waarheidstabellen op van:
(i) a ∨ ¬a
Oplossing: Zorg dat je altijd begint met kolommen te maken voor alle atomen. In
onderstaande tabellen zijn die kolommen met atomen nooit herhaald, maar dat mag
natuurlijk wel. Zorg er verder voor dat je tabellen er verzorgd uitzien en leesbaar
zijn. Merk op dat in onderstaande tabellen soms extra haakjes zijn opgenomen om het
parseren van de formules makkelijker te maken.
a ¬a a ∨ ¬a
0
1
1
1
0
1
(ii) (a → b) → a
Oplossing:
a b a → b (a → b) → a
0 0
1
0
0 1
1
0
1 0
0
1
1 1
1
1
(iii) a → (b → a)
Oplossing:
3
a b b → a a → (b → a)
0 0
1
1
0 1
0
1
1 0
1
1
1 1
1
1
(iv) a ∧ b → a
Oplossing:
a b (a ∧ b) (a ∧ b) → a
0 0
0
1
0 1
0
1
1 0
0
1
1 1
1
1
(v) a ∧ (b → a)
Oplossing:
a b b → a a ∧ (b → a)
0 0
1
0
0 1
0
0
1 0
1
1
1 1
1
1
(vi) ¬a → ¬b
Oplossing:
a b ¬a ¬b ¬a → ¬b
0 0
1
1
1
0 1
1
0
0
1 0
0
1
1
1 1
0
0
1
Opgave 1.E Welke van de volgende proposities zijn logisch waar?
Oplossing: Het antwoord wordt gevonden door de waarheidstabellen op te schrijven. Staan
er in de kolom onder de formule alleen 1-en, dan is die formule logisch waar. Zodra er echter
´e´en of meer 0-en staan, is de formule niet logisch waar.
Bedenk dat het uitsluitend geven van een waarheidstabel normaal gesproken geen
antwoord is op de vraag. Koppel altijd wat je in de tabel ziet aan wat er gevraagd
wordt!
In deze uitwerking is dat hierboven globaal gedaan door expliciet te zeggen hoe je ‘logisch
waar of niet’ kunt afleiden uit de tabel.
(i) a ∨ ¬a
Oplossing: Uit de waarheidstabel in opgave 1.D volgt dat a ∨ ¬a logisch waar is.
(ii) a → (a → a)
Oplossing: Logisch waar. Zie de laatste kolom uit deze tabel:
a a → a a → (a → a)
0
1
1
1
1
1
(iii) a → a
Oplossing: Logisch waar. Zie de tweede kolom uit de tabel van het vorige onderdeel.
4
(iv) (a → b) → a
Oplossing: Uit de 0-en in de overeenkomstige waarheidstabel in opgave 1.D blijkt dat
(a → b) → a niet logisch waar is.
(v) a → (b → a)
Oplossing: Uit de 1-en in de overeenkomstige waarheidstabel in opgave 1.D blijkt dat
a → (b → a) wel logisch waar is.
(vi) a ∧ b → a
Oplossing: Uit de 1-en in de overeenkomstige waarheidstabel in opgave 1.D blijkt dat
a ∧ b → a wel logisch waar is.
(vii) a ∨ (b → a)
Oplossing: Niet logisch waar. Zie de laatste kolom uit deze tabel:
a b b → a a ∨ (b → a)
0 0
1
1
0 1
0
0
1 0
1
1
1 1
1
1
(viii) a ∨ b → a
Oplossing: Niet logisch waar. Zie de laatste kolom uit deze tabel:
a b a ∨ b (a ∨ b) → a
0 0
0
1
0 1
1
0
1 0
1
1
1 1
1
1
Opgave 1.F Laat f en g proposities zijn. Ga na of de volgende uitspraken kloppen. Verklaar
je antwoorden.
Oplossing: Merk op dat alle uitspraken hier van het type ‘als. . . , dan. . . ’ zijn. Als de
uitspraak klopt moet je een redenering geven die dat ondersteunt. Als de uitspraak niet klopt
kun je volstaan met een tegenvoorbeeld, maar je mag natuurlijk ook een algemene redenering
geven.
Een bewijs van een ‘als. . . , dan. . . ’ bewering komt erop neer dat je mag aannemen wat
er in het ‘als’ stuk staat en daaruit moet afleiden wat er in het ‘dan’ stuk staat.
Bij een tegenvoorbeeld moet je concrete formules f en g kiezen, waarbij je laat zien dat
het ‘als’ stuk wel geldt, maar het ‘dan’ stuk niet.
(i) Als |= f en |= g, dan |= f ∧ g.
Oplossing: Klopt.
Neem aan |= f en |= g. Dan geldt voor elk model v dat v(f ) = 1 en v(g) = 1. Vervolgens
kun je bij zo’n model v v(f ∧ g) uitrekenen met de waarheidstabel van ∧. Daaruit blijkt
dat dan ook v(f ∧ g) = 1. Dus blijkbaar volgt uit de aanname dat voor elk model v,
v(f ∧ g) = 1. En dus per definitie geldt dan |= f ∧ g. En dus klopt de oorspronkelijke
uitspraak.
(ii) Als niet |= f , dan |= ¬f .
Oplossing: Klopt niet.
Als we een tegenvoorbeeld willen vinden waarvoor dus wel geldt dat ‘niet |= f ’, moeten
we in elk geval een f kiezen waarbij er minimaal een model v1 is met v1 (f ) = 0. Dan
volgt automatisch dat v(¬f ) = 1. Maar om zeker te weten dat ‘|= ¬f ’ niet geldt, moet
er dus ook een model v2 zijn met v2 (¬f ) = 0. Dat kan alleen maar als v2 (f ) = 1. Dus
5
kunnen we alleen een tegenvoorbeeld vinden als f dus in sommige modellen waar is en
in andere modellen niet waar. Gelukkig zijn daar genoeg mogelijkheden voor. Neem
maar f = a. Dan geldt ‘niet |= a’ en toch geldt de conclusie ‘|= ¬a’ niet. En dus klopt
de oorspronkelijke uitspraak niet.
(iii) Als |= f of |= g, dan |= f ∨ g.
Oplossing: Klopt.
Neem aan |= f of |= g. Dan hebben we eigenlijk drie gevallen die we moeten bekijken
en waarin we steeds dezelfde conclusie, namelijk |= f ∨ g moeten afleiden.
(1) |= f geldt. Dus voor elk model v geldt v(f ) = 1. Maar dan geldt ook voor elk
model v dat v(f ∨ g) = 1 omdat alleen het ‘waar’ zijn van f al garandeert dat de
samengestelde formule f ∨ g ook waar is. Maar dan geldt per definitie |= f ∨ g.
(2) |= g geldt. Dit gaat volkomen analoog aan het vorige geval.
(3) |= f geldt en |= g geldt. In het bijzonder geldt dus |= f en bij de beschrijving
van dat geval hebben we nergens gebruikt dat |= g al dan niet geldt, dus hetzelfde
bewijs kan nog een keer gegeven worden.
Dus in alle drie de gevallen geldt de conclusie. Dus geldt de conclusie dan ook onder de
samengestelde aanname ‘|= f of |= g’. En dus klopt de oorspronkelijke uitspraak.
(iv) Als (als |= f , dan |= g), dan |= f → g.
Oplossing: Klopt niet.
We hebben dus een voorbeeld nodig waarvoor ‘(als |= f , dan |= g)’ waar is. Dit is
zelf ook weer een ‘als. . . , dan. . . ’ bewering en kan dus op twee manieren waar worden
gemaakt.
(1) Als |= f niet waar is.
(2) Als |= f en |= g allebei waar zijn.
Als we in ´e´en van deze situaties kunnen laten zien dat |= f → g niet waar is, hebben
we dus een tegenvoorbeeld gevonden.
Neem nu f = a en g = b. Als we nu naar de modellen van a → b kijken, zien we dat
er vier verschillende modellen zijn: v1 (a) = 0 en v1 (b) = 0, v2 (a) = 0 en v2 (b) = 1,
v3 (a) = 1 en v3 (b) = 0, v4 (a) = 1 en v4 (b) = 1. In een waarheidstabel ziet dat er zo uit:
modelnaam a b a → b
v1
0 0
1
v2
0 1
1
v3
1 0
0
v4
1 1
1
Maar omdat bijvoorbeeld v1 (a) = 0 volgt meteen dat |= a niet waar is. Dus voor deze
concrete keuze van f en g geldt ‘(als |= f , dan |= g)’. Echter, als we v3 (a → b) gaan
uitrekenen, zien we dat v3 (a → b) = 0. Dus geldt |= f → g niet. En dus hebben
we inderdaad een tegenvoorbeeld gevonden. En dus klopt de oorspronkelijke uitspraak
niet.
(v) Als |= ¬f, dan niet |= f .
Oplossing: Klopt.
Deze keer geven we het bewijs zonder het woord ‘model’ te gebruiken, maar door te
beschrijven wat er in de waarheidstabellen gebeurt, zonder de waarheidstabellen uit te
schrijven. Omdat de bewering moet worden bewezen voor elke f kun je ook helemaal
6
geen tabel uitschrijven want je weet bijvoorbeeld niet welke atomen er in zitten. Maar
je weet wel of er al dan niet 1-en en 0-en in de tabel voorkomen en dat is genoeg om
deze bewering te bewijzen.
Neem aan |= ¬f . Dan bevat de kolom van ¬f alleen 1-en. En die van f dus alleen 0-en.
Per definitie geldt |= f dus niet. En dus klopt de uitspraak zelf wel.
(vi) Als |= f ∨ g, dan |= f of |= g.
Oplossing: Klopt niet.
We zoeken een tegenvoorbeeld met |= f ∨ g maar toch niet |= f en niet |= g. Neem
voor f = a en g = ¬a. Dan zijn er twee verschillende modellen: v1 met v1 (a) = 0 en
v2 met v2 (a) = 1. Hieruit volgt meteen dat v1 (¬a) = 1 en v2 (¬a) = 0. Uit v1 (a) = 0
volgt dat |= a niet geldt. En uit v2 (¬a) = 0 volgt dat ook |= ¬a niet geldt. Echter,
v1 (a ∨ ¬a) = 1 en v2 (a ∨ ¬a) = 1, dus geldt inderdaad wel |= f ∨ g. En dus is dit een
goed tegenvoorbeeld. En dus klopt de oorspronkelijke uitspraak niet.
(vii) Als |= f → g, dan (als |= f , dan |= g).
Oplossing: Klopt.
Neem aan |= f → g. Dan geldt voor elk model v dat v(f → g) = 1. Door te kijken hoe
→ werkt zien we dat er twee manieren zijn waarop v(f → g) = 1 kan voorkomen:
(1) v(f ) = 0 (en de waarde van v(g) is niet van belang)
(2) v(f ) = 1 en v(g) = 1.
We moeten in beide gevallen laten zien dat ‘als |= f , dan |= g’ waar is.
(1) Stel dat er een model v is met v(f ) = 0. Dat betekent automatisch dat |= f niet
waar kan zijn en dus is de bewering ‘als |= f , dan |= g’ kloppend.
(2) Dus hoeven we alleen nog maar te kijken naar de situatie dat alle modellen v(f ) = 1
geven. Maar dan volgt meteen uit de hierboven gemaakte gevalsonderscheiding dat
v(g) = 1 voor alle modellen. Dus is ‘als |= f , dan |= g’ waar.
Omdat in beide situaties de conclusie ‘als |= f , dan |= g’ volgt, klopt de oorspronkelijke
bewering dus.
(viii) Als |= f ↔ g, dan (|= f dan en slechts dan als |= g).
Oplossing: Klopt.
Voor de afwisseling weer een keer een bewijs zonder modellen, maar met waarheidstabellen.
Neem aan |= f ↔ g. Dit betekent dat in de waarheidstabel de waarheidswaarden van f
en g op elke regel gelijk zijn (of allebei 0 of allebei 1). Als we nu verder aannemen dat
|= f , dan heeft f dus alleen maar 1-en als waarheidswaarden. Maar dan heeft g ook
alleen maar 1-en. En dus geldt dan |= g. Andersom geldt ook: als |= g waar is, dan
heeft g allemaal 1-en in de waarheidstabel en f dus ook. Dus de hele bewering klopt.
(ix) Als (|= f dan en slechts dan als |= g), dan |= f ↔ g.
Oplossing: Klopt niet.
Neem voor f = a en g = b. We hebben dan weer dezelfde vier modellen als bij onderdeel
4. In het bijzonder hebben we dus v1 (a) = 0 en v1 (b) = 0. Dus geldt |= a niet. En ook
|= b geldt niet. De bewering ‘|= f dan en slechts dan als |= g’ is dan echter wel waar!
Als we echter v3 bekijken dan zien we dat v3 (a ↔ b) = 0. En dus geldt |= f ↔ g niet.
En dus hebben we een tegenvoorbeeld gevonden. En klopt de oorspronkelijke bewering
niet.
7
Opgave 1.G Laat zien dat de volgende proposities telkens logisch equivalent aan elkaar zijn.
Oplossing:
Of proposities logisch equivalent zijn, kunnen we makkelijk zien aan de
waarheidstabellen. Twee proposities zijn alleen maar logisch equivalent als hun kolommen
precies gelijk zijn.
(i) (a ∧ b) ∧ c en a ∧ (b ∧ c)
Oplossing: Deze proposities zijn logisch equivalent:
a b c a ∧ b b ∧ c (a ∧ b) ∧ c a ∧ (b ∧ c)
0 0 0
0
0
0
0
0 0 1
0
0
0
0
0 1 0
0
0
0
0
0 1 1
0
1
0
0
1 0 0
0
0
0
0
1 0 1
0
0
0
0
1 1 0
1
0
0
0
1 1 1
1
1
1
1
(ii) (a ∨ b) ∨ c en a ∨ (b ∨ c)
Oplossing: Ook deze proposities zijn logisch equivalent:
a b c a ∨ b b ∨ c (a ∨ b) ∨ c a ∨ (b ∨ c)
0 0 0
0
0
0
0
0 0 1
0
1
1
1
0 1 0
1
1
1
1
0 1 1
1
1
1
1
1 0 0
1
0
1
1
1 0 1
1
1
1
1
1 1 0
1
1
1
1
1 1 1
1
1
1
1
Opgave 1.H Laat f en g proposities zijn. Is de volgende uitspraak waar? f ≡ g dan en
slechts dan als |= f ↔ g.
Oplossing: Deze uitspraak is te splitsen in twee deeluitspraken:
1. Als f ≡ g dan |= f ↔ g. Stel f ≡ g, dan hebben f en g altijd dezelfde waarheidswaarde
in iedere rij van de waarheidstabel (of allebei 0 of allebei 1). Maar dan heeft f ↔ g
automatisch in elke rij een 1. En dus geldt |= f ↔ g is dan waar.
2. Als |= f ↔ g, dan f ≡ g. Stel |= f ↔ g is waar. Dan staat op elke regel in de waarheidstabel voor f ↔ g dus een 1. Maar dat betekent dat in elk model de waarheidswaarde
van f gelijk is aan die van g. En dat is precies wat f ≡ g ook uitdrukt, dus f ≡ g is
waar.
De twee deeluitspraken zijn waar, dus de totale uitspraak is waar.
Opgave 1.I Zijn de volgende uitspraken waar?
Oplossing: Ook deze opgave kun je eenvoudig oplossen door de waarheidstabellen uit te
schrijven en vervolgens de definitie van ‘logisch gevolg’ te controleren.
(i) a ∧ b |= a
Oplossing: a ∧ b |= a is waar, want in ieder model waar a ∧ b waar is, is ook a waar.
8
(ii) a ∨ b |= a
Oplossing: a ∨ b |= a is niet waar; de bewering zegt dat als a ∨ b waar is voor een model,
dan moet ook a waar zijn in dat model. Er zijn echter modellen te vinden waarvoor dat
niet geldt. Neem bijvoorbeeld het model v met v(a) = 0 en v(b) = 1.
(iii) a |= a ∨ b
Oplossing: a |= a ∨ b is waar: als a waar is in een model, dan is altijd ook a ∨ b waar
in dat model.
(iv) a ∧ ¬a |= b
Oplossing: a ∧ ¬a |= b is waar: als a ∧ ¬a waar is in een model, dan is b ook waar
in dat model. Dit lijkt een foute bewering omdat a ∧ ¬a in geen enkel model waar is.
Echter, de woordjes ‘als’ en ‘dan’ maken de totale bewering waar, juist doordat het ‘als’
deel nooit waar zal zijn.
Je kunt het ook andersom bekijken: als de bewering a ∧ ¬a |= b niet waar zou zijn, moet
je een model kunnen aanwijzen waarin b niet waar is en a ∧ ¬a wel. Dat laatste gaat
natuurlijk niet lukken.
9
2
Predikaatlogica
Opgave 2.A Geef twee mogelijke vertalingen voor de volgende zin.
Sharon houdt van Maud; een aardige man houdt van zo’n knappe vrouw.
Oplossing: Dit is een lastige opgave. Het probleem is dat in het Nederlands niet duidelijk
is wat er bedoeld wordt met zo’n knappe vrouw. Hier moet je dus je eigen interpretatie voor
geven. Uiteraard mag je geen onzinnige interpretaties geven. Het is wel de bedoeling dat je
hier iets verdedigbaars gebruikt. Het nu volgende lijstje is dan ook niet volledig, maar bevat
slechts voorbeelden van interpretaties.
(i) Heel zwak: interpreteer zo’n als een:
H(s, m) ∧ ∀x ∈ M [A(x) → ∃y ∈ V [K(y) ∧ H(x, y)]]
(ii) Interpreteer zo’n knappe vrouw als Sharon die nog knap is ook
H(s, m) ∧ ∀x ∈ M [A(x) → (H(x, s) ∧ K(s))]
(iii) Interpreteer zo’n knappe vrouw als Maud die nog knap is ook
H(s, m) ∧ ∀x ∈ M [A(x) → (H(x, m) ∧ K(m))]
(iv) Interpreteer zo’n knappe vrouw als alle vrouwen die knap zijn:
H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [K(y) → H(x, y)]]
(v) Interpreteer zo’n knappe vrouw als alle vrouwen die net zo knap zijn als Sharon:
H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [(K(y) ↔ K(s)) → H(x, y)]]
Let wel, hier staat dus niet dat Sharon knap is. Alleen maar dat als Sharon knap is,
dan wordt een willekeurige vrouw die ook knap is bemind door aardige mannen. En
als Sharon niet knap is, dan wordt een willekeurige vrouw die ook niet knap is bemind
door aardige mannen.
(vi) Interpreteer zo’n knappe vrouw als alle vrouwen die net zo knap zijn als Maud :
H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [(K(y) ↔ K(m)) → H(x, y)]]
(vii) Interpreteer zo’n knappe vrouw als knappe lesbiennes
H(s, m) ∧ ∀x ∈ M [A(x) → ∀y1 , y2 ∈ V [(K(y1 ) ∧ H(y1 , y2 )) → H(x, y1 )]]
Bedenk dat ∀y1 , y2 ∈ V [f ] een afkorting is voor ∀y1 ∈ V [∀y2 ∈ V [f ]].
Merk overigens op dat in geen enkele interpretatie die hier gegeven wordt de existenti¨ele
kwantor ∃x ∈ M is gebruikt, terwijl er in de tekst toch alleen maar ‘een aardige man’ staat.
Ook dat heeft weer met de onduidelijke interpretatie van het Nederlands te maken. Wat
bedoelen we nu eigenlijk als we zeggen ‘een kind houdt van ijs’ ? Bedoelen we dan dat er
ergens een kind is dat van ijs houdt of bedoelen we dan dat (normaal gesproken) alle kinderen
van ijs houden?
10
Opgave 2.B Vertaal de onderstaande formules naar een zin in het Nederlands.
Oplossing: Dit soort opgaven kun je het beste in stappen maken. Eerst geef je een
Nederlandse zin die heel dicht bij de formule blijft. Vervolgens ga je in het Nederlands met
voegwoorden en woordvolgordes spelen om er een duidelijkere zin van te maken. Hierbij moet
je er natuurlijk wel op letten dat de betekenis hetzelfde blijft!
h
i
(i) ∃x ∈ M L(x) ∧ ∃v ∈ V [K(v) ∧ I(v) ∧ H(x, v)]
Oplossing:
• Er is een man die lang is en er is een vrouw die knap en intelligent is en waar die
man van houdt.
• Er is een lange man en er is een knappe en intelligente vrouw waar die man van
houdt.
• Er is een lange man die van een zekere knappe en intelligente vrouw houdt.
Het woord zekere is hier toegevoegd om aan te geven dat deze man niet van elke
knappe en intelligente vrouw houdt maar van een of andere vrouw waarvan we
alleen maar weten dat er minimaal ´e´en bestaat van dat type.
h
i
(ii) ∃x ∈ M L(x) ∧ ∃v ∈ V [K(v) ∧ ¬I(v) ∧ H(x, v)] ∧ ∃w ∈ V [I(w) ∧ H(w, x)]
Oplossing:
• Er is een man die lang is en er is een vrouw die knap en niet intelligent is en waar
die man van houdt en er is een vrouw die intelligent is en die van die man houdt.
• Er is een lange man die van een zekere knappe, maar niet intelligente vrouw houdt
en die zelf wordt bemind door een of andere intelligente vrouw.
De ∃v ∈ V en ∃w ∈ V sluiten niet uit dat die v en w dezelfde vrouw kunnen zijn.
Echter omdat er een extra gegeven is dat v niet en w wel intelligent is, weten we
zeker dat het hier om verschillende vrouwen gaat.
Opgave 2.C Formaliseer de volgende zin.
Sharon is knap; er is een man die lekker in zijn vel zit van wie zij houdt.
Hierbij wordt gedefinieerd dat iemand lekker in zijn vel zit als hij of zij van zich zelf houdt.
Oplossing: Gebruikmakend van de woordenboeken op pagina 11 en 12 kan dit zo geformaliseerd worden:
K(s) ∧ ∃x ∈ M [H(x, x) ∧ H(s, x)]
Opgave 2.D Formaliseer de volgende zinnen.
(i) Voor iedere x en y geldt: x houdt van y alleen als x lekker in zijn of haar vel zit.
Oplossing: Bedenk dat ‘alleen als’ niet hetzelfde is als ‘dan en slechts dan als’. Dus
∀x, y ∈ V ∪ M [H(x, y) → H(x, x)] is goed en ∀x, y ∈ V ∪ M [H(x, y) ↔ H(x, x)] niet.
(ii) Voor iedere x en y geldt: x houdt van y als die lekker in zijn of haar vel zit.
Oplossing: ∀x, y ∈ V ∪ M [H(y, y) → H(x, y)]
(iii) Voor iedere x en y geldt: x houdt precies dan van y als y lekker in zijn of haar vel zit.
Oplossing: ∀x, y ∈ V ∪ M [H(y, y) ↔ H(x, y)]
11
(iv) Er is iemand die van alle mensen houdt.
Oplossing: ∃x ∈ V ∪ M [∀y ∈ V ∪ M [H(x, y)]]
Opgave 2.E (i) Ga na dat F2 in model M1 onder interpretatie I1 niet geldt. Geldt F1
wel?
Oplossing:
F1 := ∀x ∈ D∃y ∈ D K(x, y)
F2 := ∃x ∈ D∀y ∈ D K(x, y)
Dus ongeacht van welk model of welke interpretaie wij gebruiken wil F1 zeggen dat voor
alle x in het domein er een y in datzelfde domein gekozen kan worden waarvoor de
relatie K(x, y) geldt.
En F2 wil zeggen dat er een x in het domein gekozen kan worden waarvoor de relatie
K(x, y) geldt voor elke y in dat zelfde domein.
Wat betekent dat nu in model M1 onder interpretatie I1 :
D
alle studenten in het lokaal
K(x, y) x heeft een lager studentnummer dan y
Er wordt al verklapt dat F2 niet geldt in model M1 onder deze interpretatie. Dus je
moet laten zien dat F2 niet waar is. Omdat F2 eruit ziet als ∃x ∈ D[f ] betekent dat dat
je voor alle x ∈ D moet laten zien dat de bewering f niet waar is. En analoog omdat
deze f zelf eruit ziet als ∀y ∈ D[g] betekent dat dat je voor alle x ∈ D moet laten zien
dat er een y ∈ D bestaat waarvoor g niet waar is.
Omdat er maar eindig veel studenten (zeg n met n ≥ 1) in het lokaal zitten, kun je ze
op hun nummers sorteren. En omdat de nummers ook uniek zijn kunnen we spreken
over het laagste nummer en het hoogste nummer. Op grond van deze ordening geven
we de studenten een naam: s1 is de student met het laagste nummer en sn de student
met het hoogste nummer.
Als F2 waar is, moet je dus een student x kunnen kiezen waarvoor geldt dat hij een lager
nummer heeft dan de nummers van alle studenten in het lokaal. De enige kanshebber
voor x is natuurlijk de student met het laagste nummer, dus s1 . (Duidelijk toch?) Dus
kies je x = s1 . Dat betekent dat je verder moet bepalen of de formule
∀y ∈ D K(s1 , y)
geldt of niet. Omdat s1 het laagste studentnummer heeft, geldt deze formule voor de
meeste studenten y wel. Echter, voor alle studenten y in het lokaal geldt de bewering
niet. Want s1 zit namelijk zelf ook in dat lokaal en dus zou de formule
K(s1 , s1 )
ook waar moeten zijn en dat is zeker niet waar: s1 heeft geen lager studentnummer dan
s1 .
Omdat s1 onze enige kanshebber was om met succes de rol van x te spelen, weten we
nu dus dat de formule
F2 := ∃x ∈ D∀y ∈ D K(x, y)
niet geldt in model M1 onder interpretatie I1 .
12
Grote vraag is: kan dit niet wat korter worden opgeschreven? Ja, dat kan wel. In het
bovenstaande verhaal zijn heel veel vanzelfsprekende details uitgeschreven. Hieronder
een kortere variant:
Sorteer de studenten oplopend op hun unieke studentnummer. Geef ze in
die volgorde een naam waarbij s1 de student is met het laagste nummer en
sn die met het hoogste nummer. Stel dat F2 wel waar is. Dan zijn er twee
mogelijkheden voor x.
• x = si met i ∈ {2, . . . , n}. Dan geldt K(si , s1 ) niet, dus zeker niet
∀y ∈ D K(x, y). Dus is dit geen goede keuze voor x.
• x = s1 . Dan geldt K(s1 , s1 ) niet en dus ook hier geldt ∀y ∈ D K(x, y))
niet, want ook s1 ∈ D.
Dus we kunnen geen x vinden die F2 waarmaakt en dus geldt F2 niet in dit
model.
Nu de vraag of F1 geldt in dit model. Of met andere woorden: is het zo dat er voor
elke student x er een student y gekozen kan worden die een hoger studentnummer heeft
dan x. Ook dit is niet mogelijk. Omdat F1 van de vorm ∀x ∈ D [∃y ∈ D K(x, y)] is,
zijn we nu tevreden zodra we ´e´en x kunnen aanwijzen waarvoor er geen y bestaat zodat
K(x, y) waar is.
Kies nu maar voor x de student sn die het hoogste studentnummer uit het lokaal heeft.
We hebben eerder al laten zien dat dat kan. Bij deze sn is er geen enkele y te vinden
waarvoor het studentnummer hoger is; het is immers op z’n hoogst gelijk als we weer
sn zelf kiezen. En dus hebben we met student sn een student gevonden waarbij we geen
student kunnen vinden met een hoger studentnummer. Dus F1 geldt niet in model M1
onder interpretatie I1 .
(ii) Ga na dat F1 in model M1 onder interpretatie I2 geldt. Geldt F2 ook?
Oplossing: Dit is interpretatie I2 :
D
alle studenten in het lokaal
K(x, y) x is niet ouder dan y
We moeten laten zien dat F1 wel geldt onder deze interpretatie I2 . Dat betekent dat
we voor elke x moeten laten zien dat we een y kunnen kiezen waarvoor K(x, y) waar is.
Of met andere woorden: je moet een soort algoritme hebben om bij gegeven x een y te
kiezen zodanig dat K(x, y) waar is.
Hier is dat algoritme eenvoudig: kies y namelijk maar gelijk aan die gegeven x. Dan
geldt K(x, y) want de leeftijd van x is de leeftijd van y en dus is x niet ouder dan y.
Op een soortgelijke manier kunnen we ook laten zien dat F2 geldt in model M1 onder
interpretatie I2 . Hier is het voldoende om een verstandige x te kiezen. Zostraks hebben
we de studenten gesorteerd op studentnummer, nu doen we dat op leeftijd. Het grote
verschil is dat de leeftijden niet uniek hoeven te zijn, zelfs niet als je leeftijd niet zoals
gebruikelijk meet in jaren, maar in seconden of nog kleinere eenheden. Dus we kunnen
hier niet spreken over de jongste of de oudste student. Er kunnen namelijk meerdere
studenten de laagste leeftijd hebben. Of met andere woorden de deelverzameling van
jongste studenten bevat minstens ´e´en element. Gelukkig is dat hier goed genoeg. Neem
voor x maar ´e´en van de studenten uit die deelverzameling van jongste studenten. Voor
alle studenten y geldt dan dat of x even oud is als y, of x is echt jonger dan y. In alle
gevallen is x dus niet ouder dan y en geldt F2 dus in model M1 onder interpretatie I2 .
13
(iii) Kijk om je heen en ga na of F1 in het model M1 onder interpretatie I3 geldt. Ga ook
na of F2 geldt.
Oplossing: Dit is interpretatie I3 :
D
alle studenten in het lokaal
K(x, y) x zit naast y
In model M1 onder interpretatie I3 is het niet duidelijk of F1 waar is of niet. Dat hangt
namelijk af van de concrete situatie in het lokaal. Als er ergens een student zit zonder
directe buren, kun je hem als tegenvoorbeeld gebruiken. Immers kies je hem als x, kun
je geen student y vinden die naast hem zit. Als er nergens studenten apart zitten, is
F1 wel waar. Bij elke student x die je kiest heb je een algoritme om een student y te
kiezen zodat K(x, y) waar is: neem namelijk ´e´en van zijn buren.
F2 is altijd niet waar in model M1 onder interpretatie I3 . De formule zegt namelijk
dat er ´e´en student moet zijn die naast alle studenten moet zitten. Nu kun je nog wel
proberen om een klas met twee studenten te nemen of een klas waarin alle tafels in een
soort ster staan waar ´e´en student in het midden naast alle andere studenten kan zitten,
maar je krijgt het nooit voor elkaar om een situatie te hebben waar je een student kunt
kiezen die ook naast zichzelf zit. En dat is wel wat er volgens F2 zou moeten gelden
onder interpretatie I3 .
Opgave 2.F Ga na dat G2 waar is in model M4 onder interpretatie I8 , maar niet in model
M3 onder interpretatie I7 . Ofwel: ((Q, <), I8 ) |= G2 , en ((N, <), I7 ) 6|= G2 .
Oplossing:
(i) Interpretatie I7 geeft G2 de betekenis dat voor iedere x ∈ N er een y ∈ N is zodat y < x.
Tegenvoorbeeld: neem x = 0 want dan lukt het niet om een y te vinden met y < 0.
(ii) Interpretatie I8 geeft G2 de betekenis dat voor iedere x ∈ Q er een y ∈ Q is zodat y < x.
Dit is waar, want voor ieder getal x is er een kleiner getal y te vinden. Kies voor y maar
het getal x − 1.
Opgave 2.G Definieer interpretatie I9 als volgt:
D
N
K(x, y) x = 2 · y
Welke van de formules G1 en G2 zijn waar?
Oplossing:
(i) Onder interpretatie I9 betekent G1 dat voor iedere x ∈ N er een y ∈ N is zodat x = 2 · y.
Tegenvoorbeeld: zo’n y bestaat niet als x = 3, dus niet waar.
(ii) Onder interpretatie I9 betekent G2 dat voor iedere x ∈ N er een y ∈ N is zodat y = 2 · x.
Dit is wel waar: kies een x en kies daarna voor y maar het getal 2 · x.
Opgave 2.H Definieer interpretatie I10 als volgt:
D
Q
K(x, y) x = 2 · y
Welke van de formules G1 en G2 zijn waar?
Oplossing:
(i) Onder interpretatie I10 betekent G1 dat voor iedere x ∈ Q er een y ∈ Q is zodat x = 2·y.
Dit is waar: kies een x en kies daarna voor y maar het getal x2 .
14
(ii) Onder interpretatie I10 betekent G2 dat voor iedere x ∈ Q er een y ∈ Q is zodat y = 2·x.
Dit is waar: kies een x en kies daarna voor y maar het getal 2 · x.
Opgave 2.I We bekijken als model de landen van Europa met de volgende interpretatie I11 .
L
verzameling van landen van Europa
n
Nederland
d
Duitsland
i
Ierland
G(x, y)
x grenst aan y
D(x, y, z) x, y en z hebben een drielandenpunt met elkaar
(i) Formaliseer de zin “Nederland en Duitsland delen een drielandenpunt”
Oplossing: De meest voor de hand liggende formule is ∃x ∈ L [D(n, d, x)], maar er
zijn genoeg alternatieven te bedenken: ∃x ∈ L [D(n, d, x)], ∃x ∈ L [D(x, d, n)], ∃y ∈
L [D(y, n, d)], . . .
(ii) Welke van de volgende formules is waar in dit model onder deze interpretatie:
(1) G3 := ∀x ∈ L∃y ∈ L[G(x, y)]
Oplossing: G3 betekent dat voor elk land x er een land y is dat grenst aan x. Dit
is niet waar, want het geldt bijvoorbeeld niet voor eilanden als IJsland en Malta.
(2) G4 := ∀x, y ∈ L[(∃z ∈ L D(x, y, z)) → G(x, y)]
Oplossing: G4 betekent dat voor alle landen x en y geldt dat als er een land z is
dat een drielandenpunt heeft met x en y, dan grenzen x en y aan elkaar. Dit is
waar: als twee landen een drielandenpunt hebben, dan grenzen ze automatisch aan
elkaar.
(3) G5 := ∀x ∈ L[G(i, x) → ∃y ∈ L[D(i, x, y)]].
Oplossing: G5 betekent dat als een land grenst aan Ierland dan heeft het daar
ook een drielandenpunt mee. Dit is niet waar: neem het Verenigd Koninkrijk: dat
grenst aan Ierland (via het gebied Noord-Ierland) maar heeft er geen drielandenpunt mee gemeen. (Als i als interpretatie IJsland zou hebben, zou G5 waar zijn,
want G(i, x) is altijd onwaar (voor iedere x), dus is de implicatie altijd waar.)
Opgave 2.J Bedenk zelf een model M5 en een interpretatie I12 zodat
(M5 , I12 ) |= ∀x ∈ D∃y ∈ E[R(x, y) ∧ ¬R(y, x) ∧ ¬R(y, y)]
Oplossing: Neem bijvoorbeeld
• als model M5 de natuurlijke getallen en als interpretatie I12 :
D
E
R(x, y)
N
N
x<y
Check zelf dat de formule geldt als je bij x ∈ N voor y de waarde x + 1 kiest.
• als model M5 de verzameling alle mensen en de vader van relatie en als interpretatie
I12 :
D
E
R(x, y)
alle mensen
alle mensen
y is de vader van x
Merk op dat R(x, y) met x is de vader van y niet werkt.
15
Bij deze opgave dient eigenlijk nog gezegd te worden dat de domeinen D en E wel wat met
elkaar te maken moeten hebben. Bij Formeel Denken gaan we hier niet echt verder op in,
maar bij Beweren en Bewijzen zul je zien dat elke relatie R(x, y) een type heeft, bijvoorbeeld
N → Q → {0, 1}. Dit betekent dat x ∈ N en y ∈ Q moet zitten en vervolgens levert R(x, y)
dan een 1 of 0 als de relatie in de gegeven interpretatie al dan niet waar is. Bij deze opgave
schrijven we zowel R(x, y) als R(y, x). Omdat het type van R vastligt als D → E → {0, 1},
moet dus x ∈ D, x ∈ E, y ∈ D en y ∈ E! Dus een model defini¨eren waarbij D de verzameling
auto’s is en E de verzameling fietsen en dan R(x, y) interpreteren als ‘x is sneller dan y’ is
een beetje gek omdat een auto namelijk nooit een fiets is of omgekeerd. In dit geval zou je
dan ook een superdomein V , de verzameling van voertuigen, kunnen toevoegen en het type
van R defini¨eren als V → V → {0, 1}. In dat geval kun je zonder problemen zowel R(x, y) als
R(y, x) schrijven zonder iets onzinnigs te beweren. Heb je niets begrepen van deze opmerking,
hoef je je voorlopig nog geen zorgen te maken. Het komt bij Beweren en Bewijzen aan bod.
Opgave 2.K Beschouw de interpretatie I13 :
M
V (x)
O(x, y)
G(x, y)
domein van de mensen;
x is vrouw;
x is ouder van y;
x is getrouwd met y.
Formaliseer de volgende zinnen in de predikaatlogica met gelijkheid.
(i) Iedereen heeft precies ´e´en moeder.
Oplossing:
∀x ∈ M
∃y ∈ M
[
∧
∀y, z ∈ M
[ V (y) ∧ O(y, x)
]
[ (V (y) ∧ O(y, x) ∧ V (z) ∧ O(z, x)) → y = z
]
]
In deze formule speelt x de rol van iemand, de y en z spelen de rol van moeders. De
eerste y wordt gebruikt om aan te tonen dat er een moeder is, de tweede wordt samen
met de z gebruikt om te laten zien dat er maximaal ´e´en moeder is. Strikt genomen
hebben die twee y’s dus niets met elkaar te maken. Als de tweede y op elke plaats
vervangen was door een w was de formule ook goed geweest. Let ook op de scope van
die x: ook in het tweede stuk (≤ 1 moeders), moet je wel terug kunnen verwijzen naar
je oorspronkelijke persoon x.
Een alternatieve oplossing die net zo goed is:
∀x ∈ M
[ ∃y ∈ M
[ V (y) ∧ O(y, x)
∧
∀z ∈ M [(V (z) ∧ O(z, x)) → y = z]
]
]
Het grote verschil is dat de y nu maar ´e´en keer gebonden wordt en zowel gebruikt wordt
om aan te tonen dat er minimaal ´e´en moeder is als om aan te tonen dat elke ‘andere’
moeder dezelfde blijkt te zijn.
16
(ii) Iedereen heeft precies twee oma’s.
Oplossing:
∀x ∈ M
[
∃y, z ∈ M
∧
∀y, z, v ∈ M
[ y 6= z ∧
∃u ∈ M [V (y) ∧ O(y, u) ∧ O(u, x)]∧
∃u ∈ M [V (z) ∧ O(z, u) ∧ O(u, x)]
]
[ (y 6= z ∧
∃u ∈ M [V (y) ∧ O(y, u) ∧ O(u, x)]∧
∃u ∈ M [V (z) ∧ O(z, u) ∧ O(u, x)]∧
∃u ∈ M [V (v) ∧ O(v, u) ∧ O(u, x)]) → (v = y ∨ v = z)
]
]
De x speelt weer de rol van iemand, de y en z spelen de rol van de twee verschillende
oma’s en de u speelt de rol van de vader of moeder van x en tegelijkertijd het kind van
de oma’s.
(iii) Iedere getrouwde man heeft precies ´e´en echtgenote.
Oplossing: Een eerste poging is:
∀x ∈ M [∃y ∈ M [G(x, y)] → (∀z1 , z2 ∈ M [G(x, z1 ) ∧ G(x, z2 ) → z1 = z2 ])]
Deze zin zegt dat voor iedere persoon x het volgende geldt: Als x getrouwd is, dan is
er maar ´e´en persoon met wie x getrouwd is (want als x met z1 en met z2 getrouwd is,
dan z1 = z2 ).
Het zegt echter niets over het man zijn en het vrouw zijn van de echtgenote. We moeten
de formule dus iets aanpassen:
∀x ∈ M
[ ¬V (x) ∧ ∃y ∈ M [G(x, y)]
→
(∀z1 , z2 ∈ M [G(x, z1 ) ∧ G(x, z2 ) → z1 = z2 ∧ V (z1 )])
]
Merk op dat we na de → niets meer over y kunnen zeggen. Echter, omdat die ∀z1 in
het bijzonder ook die eerdergenoemde y moet bevatten, volgt uit de V (z1 ) toch dat die
ene persoon waarmee de man x getrouwd is een vrouw meot zijn.
Opgave 2.L Gebruik interpretatie I13 van opgave 2.K. Formaliseer de volgende eigenschappen.
(i) S(x, y): x en y hebben samen een kind gemaakt.
Oplossing: Definieer
S(x, y) := x 6= y ∧ ∃z ∈ M [O(x, z) ∧ O(y, z)]
Dan zijn x en y twee verschillende personen en er is een persoon z waar zowel x als y
ouder van is. (Als we x 6= y weglaten zou S(x, x) ook waar zijn, maar de zin bedoelt
niet te zeggen dat iemand met zichzelf een kind heeft gemaakt. . . )
17
(ii) B(x, y): x is broer van y (pas op: zie ook volgende item).
Oplossing: Definieer
B(x, y) := ¬V (x) ∧ x 6= y ∧ ∃q, r ∈ M [q 6= r ∧ O(q, x) ∧ O(q, y) ∧ O(r, x) ∧ O(r, y)]
Dan is x een broer van y als x man is (en niet dezelfde is als y), en er twee verschillende
ouders q en r zijn, die ouder zijn van ieder van deze twee kinderen.
(iii) H(x, y): x is halfzus van y.
Oplossing: Definieer
H(x, y) := V (x) ∧ x 6= y∧
∃o1 , o2 , o3 ∈ M [o1 6= o2 ∧ o2 6= o3 ∧ o3 6= o1 ∧
O(o1 , x) ∧ O(o2 , x) ∧ O(o2 , y) ∧ O(o3 , y)]
Dan is x een halfzus van y als x vrouw is, en er drie ouders o1 , o2 , o3 zijn waarbij x kind
is van o1 en o2 en y kind is van o2 en o3 . Bovendien moeten deze drie ouders verschillend
zijn.
Vertaal terug naar de omgangstaal.
(iv) ∃x∈M ∀y∈M O(x, y). Geldt dit?
Oplossing: “Er is een persoon x die ouder is van alle mensen.” Dit geldt niet.
(v) ∀z1 ∈M ∀z2 ∈M [(∃x∈M ∃y1 ∈M ∃y2 ∈M O(x, y1 ) ∧ O(y1 , z1 ) ∧ O(x, y2 ) ∧ O(y2 , z2 )) →
¬(∃w∈M (O(z1 , w) ∧ O(z2 , w)))]. Geldt dit?
Oplossing: “Ieder tweetal mensen dat een gemeenschappelijke grootouder heeft, heeft
geen gemeenschappelijk kind”. Dit geldt niet. (Realiseer je dat het “tweetal mensen”
waar het over gaat ook ´e´en en dezelfde persoon kan zijn! Dan zie je meteen dat het niet
geldt.)
Opgave 2.M Gegeven de interpretatie I14
D
P (x, y, z)
M (x, y, z)
N;
x + y = z;
x · y = z.
Formaliseer
Oplossing: Bij deze opgave hebben we straks de formalisatie van x = 0 en x = 1 nodig.
Daar beginnen we mee.
• x = 0 als a · x = x voor alle a. Dus definieer
x = 0 := ∀a ∈ D[M (a, x, x)]
• x = 1 als x · a = a voor alle a. Dus definieer
x = 1 := ∀a ∈ D[M (x, a, a)]
(i) x < y.
Oplossing: x < y: dit is waar wanneer x + r = y en r 6= 0.
Definieer:
x < y := ∃r ∈ D[P (x, r, y) ∧ r 6= 0]
18
(ii) x | y (x is deler van y).
Oplossing: x|y (x is deler van y): er is een getal z zodat x · z = y. Definieer
x|y := ∃z ∈ D[M (x, z, y)]
(iii) x is priemgetal.
Oplossing: x is priem: x is niet 1 en het heeft geen factoren anders dan 1 en zichzelf.
Definieer
x is priem := x 6= 1 ∧ ¬∃y, z ∈ D[M (y, z, x) ∧ y 6= x ∧ z 6= x ∧ y 6= 1 ∧ z 6= 1]
Een andere formalisatie gebruikt de zojuist gedefinieerde x|y.
x is priem := x 6= 1 ∧ ∀y ∈ D[(y|x) → (y = 1 ∨ y = x)]
19
3
Talen en automaten
Opgave 3.A In voorbeeld 3.5 heb je voorbeelden gezien van beschrijvingen van talen. Probeer het nu zelf.
(i) Beschrijf L1 ∩ L2 .
Oplossing: L1 ∩ L2 bestaat uit de woorden van de vorm an bn die een even aantal a’s
bevatten, dus L1 ∩ L2 = {an bn | n ∈ N, n is even}. Een andere manier om dit te
beschrijven is L1 ∩ L2 = {a2n b2n | n ∈ N}
(ii) Beschrijf L2 ∩ L4 .
Oplossing: L2 ∩ L4 bestaat uit de woorden w van de vorm an bn waarvoor geldt w = wR .
Dat geldt alleen als n = 0, dus als w = λ, dus L2 ∩ L4 = {λ}.
(iii) Beschrijf L3 ∩ L4 .
Oplossing: L3 ∩ L4 bestaat dan uit de woorden van de vorm wcv waarvoor geldt:
|w| = |v|, w bevat geen b en v bevat geen a en wcv = v R cwR . Dat kan alleen als w en v
allebei uit alleen c’s bestaan, dus L3 ∩ L4 = {cn | n ∈ N, n is oneven} = {c2n+1 | n ∈ N}.
Opgave 3.B Gebruik de definities uit voorbeeld 3.5.
(i) Bewijs dat L1 = L∗1
Oplossing: Om L1 = L∗1 te bewijzen laten we zien dat L1 ⊆ L∗1 en L∗1 ⊆ L1 . Het eerste
is bekend: voor elk woord w in L1 kun je in de definitie van L∗1 k = 1 nemen en w1 = w
en dan heb je bewezen dat w ∈ L∗1 . Voor het tweede deel: als w ∈ L∗1 dan is w van de
vorm w1 · · · wk met k ≥ 0 en alle wi hebben een even aantal a’s (want elke wi ∈ L1 ).
Maar dan heeft w zelf ook een even aantal a’s, en dus w ∈ L1 .
(ii) Geldt L2 L2 = L2 ? Geef een bewijs of een tegenvoorbeeld.
Oplossing: Nee. ab ∈ L2 , dus abab ∈ L2 L2 en het is duidelijk dat abab 6∈ L2 . Dus
L2 L2 6= L2 .
∗
(iii) Geldt L1 = L1 ? Geef een bewijs of een tegenvoorbeeld.
Oplossing: L1 = {w | w bevat een oneven aantal a’s}. Het antwoord is ‘nee’, want
∗
a ∈ L1 en dus aa ∈ L1 maar het is duidelijk dat aa ∈ L1 en dus automatisch aa 6∈ L1 .
∗
∗
Dus L1 6= L1 . (Bedenk dat L1 betekent dat je eerst het complement van L1 neemt en
daarna pas de Kleene afsluiting.)
(iv) Voor welke talen uit voorbeeld 3.5 geldt L = LR ? (Alleen antwoord, geen bewijs.)
Oplossing: Alleen voor L1 en L4 .
Bij L1 draai je woorden om die een even aantal a’s hebben en dat verandert het aantal
a’s natuurlijk niet. Bij L2 gaat het mis: bbaa ∈ LR
2 maar bbaa 6∈ L2 . Bij L3 gaat het
ook mis: bca ∈ LR
maar
bca
∈
6
L
.
Bij
L
gaat
het
om omgedraaide palindromen en
3
4
3
per definitie is een omgedraaide palindroom weer een palindroom.
Opgave 3.C (i) Laat zien dat we de operator ?, waarbij a? staat voor 0 of 1 keer a niet
hoeven toe te voegen aan de reguliere expressies, omdat we hem al kunnen maken.
Oplossing: We kunnen a? defini¨eren als a ∪ λ.
(ii) Wat is L(∅ab∗ )?
Oplossing: L(∅ab∗ ) = L(∅)L(a)L(b∗ ) = ∅{a}{b}∗ en dat zijn de woorden w1 w2 w3 zodat
w1 ∈ ∅, w2 ∈ {a} en w3 ∈ {b}∗ . Maar er is geen w1 ∈ ∅, dus L(∅ab∗ ) = ∅.
(iii) Geef een reguliere expressie die de taal L5 := {w ∈ {a, b}∗ | w bevat minstens ´e´en a}
beschrijft.
Oplossing: (a ∪ b)∗ a(a ∪ b)∗ . De minimale a staat in het midden van de expressie; zowel
daarvoor als daarna kan er een willekeurig rijtje van a’s en b’s komen en zo’n willekeurig
20
rijtje (eventueel van lengte 0) wordt met (a ∪ b)∗ weergegeven. Een andere expressie die
dezelfde taal genereert is b∗ a(a ∪ b)∗ .
(iv) Geef een reguliere expressie die de taal L1 uit voorbeeld 3.5 beschrijft.
Oplossing: (b∗ ab∗ ab∗ )∗ b∗ . Het idee is dat de ingewikkelde expressie b∗ ab∗ ab∗ een reguliere expressie is die elk woord met precies twee a’s erin beschrijft. Door nu (b∗ ab∗ ab∗ )∗
te nemen krijg je dus 0 of meer rijtjes met precies twee a’s en daarmee kun je bijna alle
rijtjes met een even aantal a’s maken. De enige die je dan nog mist is als je 0 a’s hebt:
in dat geval moet je nog een b∗ toevoegen om woorden als bbb te kunnen maken. Die
b∗ mag overigens ook vooraan worden geschreven, dus b∗ (b∗ ab∗ ab∗ )∗ is ook een goede
oplossing. Verder is (b ∪ ab∗ a)∗ ook correct.
(v) Laat zien dat L(ab(ab)∗ ) = L(a(ba)∗ b).
Oplossing: L(ab(ab)∗ ) bestaat uit woorden van de vorm ab gevolgd door n keer ab (met
n ≥ 0). Maar ab gevolgd door n keer ab is dezelfde string als a gevolgd door n keer ba,
gevolgd door b. En de woorden van de laatste vorm zijn precies de taal L(a(ba)∗ b).
Je kunt het ook op de volgende manier bewijzen. Een willekeurig woord uit L(ab(ab)∗ )
ziet eruit als ab(ab)n met n ∈ N. Maar zo’n willekeurig woord kunnen we herschrijven:
ab(ab)n = ab(ab) · · · (ab)
= abab · · · ab
= ababa · · · bab
= a(ba)(ba) · · · (ba)b
= a(ba)n b
en dat is een woord uit L(a(ba)∗ b). Dus L(ab(ab)∗ ) ⊆ L(a(ba)∗ b). Het bewijs dat ook
L(a(ba)∗ b) ⊆ L(ab(ab)∗ ) gaat analoog.
Merk op dat het algemene bewijs dat hier gegeven is (met · · · ) alleen maar klopt voor
n ≥ 3; ga zelf na dat je voor n = 0, 1, 2 een soortgelijk herschrijfbewijs kunt opschrijven
(maar dan zonder · · · ).
Wie niet houdt van bewijzen met · · · erin, moet even wachten op het volgende hoofdstuk
waarin bewijzen met inductie worden uitgelegd. Heel in het kort is dat een manier om
aan de hand van een bewijs voor een specifiek simpel geval (basisstap) en een bewijs van
een methode om uit een simpel geval een iets moeilijker geval af te leiden (inductiestap),
een bewijs voor alle gevallen te maken. Hier ziet dat er zo uit (maar dit hoef je nu
natuurlijk nog niet te begrijpen).
Basisstap. Elk woord in L(ab(ab)∗ ) ziet eruit als ab(ab)n met n ∈ N. Het kleinste
woord krijgen we dus als n = 0 en dat is dus ab. Het is meteen duidelijk dat ab ook in
L(a(ba)∗ b) zit. Dus voor n = 0 geldt het dat ab(ab)n = a(ba)n b.
Inductiestap. We nemen nu aan dat we al weten dat de gewenste eigenschap geldt voor
een of andere n ∈ N. In dit geval betekent dat dus dat we weten dat voor zekere n
geldt dat ab(ab)n = a(ba)n b. Dit noemen we de inductiehypothese (IH). Nu moeten we
21
bewijzen dat dan ook geldt ab(ab)n+1 = a(ba)n+1 b. Dat gaan we nu laten zien:
ab(ab)n+1
=
ab(ab)n (ab)
= ab(ab)n ab
IH
= a(ba)n bab
=
a(ba)n (ba)b
=
a(ba)n+1 b
Op de plaats waar IH staat, passen we de inductiehypothese toe op het eerste deel van
de string.
Doordat we nu weten dat de eigenschap voor n = 0 geldt, weten we met de inductiestap
dat hij ook voor n = 1 geldt. Maar dan weten we door nogmaals de inductiestap toe
te passen dat hij ook voor n = 2 geldt. En zo verder gaand, kun je aantonen dat
voor elke n ∈ N geldt dat ab(ab)n = a(ba)n b. Maar dat betekent dat elk woord in
L(ab(ab)∗ ) ook in L(a(ba)∗ b) zit. Dus L(ab(ab)∗ ) ⊆ L(a(ba)∗ b). Het bewijs dat ook
L(a(ba)∗ b) ⊆ L(ab(ab)∗ ) waar is, gaat analoog natuurlijk.
Opgave 3.D Laat zien dat de volgende talen regulier zijn.
(i) L6 := {w ∈ {a, b}∗ | iedere a in w wordt direct gevolgd door een b},
Oplossing: Een reguliere expressie voor L6 is (b ∪ ab)∗ . (NB: een woord uit L6 hoeft
niet noodzakelijk een a te bevatten.) Een andere oplossing is (b∗ (ab)∗ )∗ . De expressie
(b∗ ab)∗ lijkt daar heel erg op, maar is toch niet goed. Welk woord uit L6 kun je met die
laatste expressie bijvoorbeeld niet maken?
(ii) L7 := de taal van alle goedgevormde integer-expressies. Deze bestaan uit de symbolen 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, maar ze beginnen nooit met een 0 (behalve het getal 0 zelf
natuurlijk) en mogen eventueel worden voorafgegaan door een + of een −.
Oplossing: Een reguliere expressie voor L7 is
((+ ∪ − ∪ λ)(1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)(0 ∪ 1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)∗ ) ∪ 0
Bij deze oplossing is er voor gekozen dat je wel 0 zelf kunt maken, maar niet +0 of
−0. Hoe kun je deze oplossing aanpassen om toch ook −0 toe te staan? Let wel: met
integer-expressies worden dus eigenlijk alleen getallen bedoeld, al dan niet voorzien van
een teken en geen rekenkundige operaties zoals hierna.
(iii) L8 := de taal van alle goedgevormde rekenkundige expressies zonder haakjes. Deze
bestaan uit natuurlijke getallen met daartussen de operatoren +, − of ×, bijvoorbeeld
7 + 3 × 29 − 78. (Hint: maak eerst een reguliere expressie voor de natuurlijke getallen;
zo’n getal begint (bijna) nooit met een 0.)
Oplossing: Het bijna nooit beginnen met een 0 levert de volgende gevalsonderscheiding
op: ofwel we hebben het getal 0, ofwel we hebben een getal dat nooit met een 0 begint:
r := (0 ∪ (1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)(0 ∪ 1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)∗ )
Een reguliere expressie voor L8 is dan (r(+ ∪ − ∪ ×))∗ r. Merk op dat deze expressie ook
expressies zonder operator genereert als bijvoorbeeld 37. Dat kun je voorkomen door
de ∗ ´e´en keer uit te pakken: (r(+ ∪ − ∪ ×))∗ r(+ ∪ − ∪ ×)r.
22
Opgave 3.E Welke van de volgende reguliere expressies beschrijven dezelfde taal? Toon het
aan of geef een string die wel in de ene en niet in de andere taal zit.
(i) b∗ (aab)∗ .
(ii) b∗ (baa)∗ b.
(iii) bb∗ (aab)∗ .
Oplossing: We geven de talen even een naam: L := L(b∗ (aab)∗ ), L0 := L(b∗ (baa)∗ b) en
L00 := L(bb∗ (aab)∗ ).
(i) L 6= L0 , want λ zit in L maar niet in L0 .
(ii) L 6= L00 , want λ zit in L maar niet in L00 .
(iii) L0 = L00 , want
• Als w ∈ L0 , dan is w van de vorm b . . . b baa . . . baa b met n keer b en m keer baa
(n, m ≥ 0). Als m = 0 zit dit woord zeker in L00 . ALs m > 0, dan kunnen we dit
woord ook lezen als b . . . b b aab . . . aab met n + 1 keer b en m keer aab, dus w ∈ L00 .
In herschrijfregels ziet dit er zo uit:
w = bn (baa)m b
= bn (baa) · · · (baa)b
= bn baa · · · baab
= bn baab · · · aabaab
= bbn aab · · · aabaab
= bbn (aab) · · · (aab)(aab)
= bbn (aab)m ∈ L00
Ook hier geldt het algemene bewijs alleen als m ≥ 3 is; toon zelf aan dat de stelling
ook klopt als m = 0, 1, 2.
• Als w ∈ L00 , dan is w van de vorm b b . . . b aab . . . aab met n + 1 keer b en m keer
aab (n, m ≥ 0). Als m = 0 zit dit woord zeker in L0 . Als m > 0, dan kunnen we
dit woord ook lezen als b . . . b baa . . . baa b met n keer b en m keer baa, dus w ∈ L0 .
Analoog als hierboven kan er ook een bewijs met herschrijfregels worden gegeven.
Opgave 3.F (i) Laat zien dat de taal van gebalanceerde haakjesexpressies contextvrij is.
Dat zijn expressies over {(, )} waarbij ieder openingshaakje altijd precies ´e´en sluithaakje
heeft, dus bijvoorbeeld (( )(( ))) en (( ))( ) zijn gebalanceerd, maar (( )( ))) niet.
Oplossing: Gebalanceerde haakjesexpressies, zoals (()(())) en (())(), maak je met de
volgende grammatica:
S → SS | (S) | λ
of met
S → (S)S | λ
(ii) Laat zien dat L1 uit voorbeeld 3.5 contextvrij is.
Oplossing: L1 :
S → bS | aT | λ
T
→ bT | aS
23
(iii) Laat zien dat L2 uit voorbeeld 3.5 contextvrij is. (Kijk naar voorbeeld 3.13.)
Oplossing: L2 :
S → aSb | λ
(iv) Laat zien dat L3 uit voorbeeld 3.5 contextvrij is.
Oplossing: L3 :
S → ASB | c
A → a|c
B → b|c
Bouw de strings op vanuit het midden en plaats de middelste c pas in de laatste stap.
Als je die c eerder plaatst verlies je de controle om de lengte van w en v gelijk te houden.
(v) Laat zien dat L4 uit voorbeeld 3.5 contextvrij is.
Oplossing: L4 :
S → aSa | bSb | cSc | a | b | c | λ
Bouw wederom de woorden op vanuit het midden.
Opgave 3.G Bekijk de grammatica G1 :
S → AS | Sb | λ
A → aA | λ
(i) Schrijf G1 als een tripel hΣ, V, Ri.
Oplossing:
G1 = h{a, b}, {S, A}, {S → AS, S → Sb, S → λ, A → aA, A → λ}i
(ii) Geef een productie die laat zien dat aabb ∈ L(G1 ).
Oplossing: Er zijn verschillende producties mogelijk. Hier twee voorbeelden:
S → AS → aAS → aaAS → aaS → aaSb → aaSbb → aabb
S → AS → ASb → ASbb → Abb → aAbb → aaAbb → aabb
(iii) Kun je binnen drie minuten een productie geven die laat zien dat bbaa ∈ L(G1 )?
Oplossing: Nee, dat zal niet lukken want bbaa 6∈ L(G1 ). Het bewijs daarvan kunnen
we nu nog niet geven, maar we komen er op terug in een latere opgave.
Opgave 3.H Gegeven is de volgende grammatica voor de taal L12 .
S → aSb | A | λ
A → aAbb | abb
De hulpsymbolen zijn dit keer S en A en Σ = {a, b}.
(i) Geef de productie van abb en van aabb.
Oplossing: Produceer abb via S → A → abb. Produceer aabb via S → aSb → aaSbb →
aabb.
24
(ii) Welke woorden zitten in L12 ?
Oplossing:
• λ, door de regel S → λ
• woorden van de vorm an Sbn met n ∈ N, geproduceerd door regel S → aSb
• het hulpsymbool A produceert woorden van de vorm am b2m met m ∈ N en m ≥ 1:
abb,aabbbb,aaabbbbbb,... Dit is eenvoudig in te zien, omdat de productieregels voor
A alleen gebruik maken van A zelf (geen S).
• de regel S → A zorgt ervoor dat een S vervangen kan worden door dat wat A
produceert: am b2m dus. En an Sbn levert dus an am b2m bn met n, m ∈ N en m ≥ 1.
Dit kan vereenvoudigd worden tot an+m bn+2m met n, m ∈ N en m ≥ 1.
Dit bij elkaar genomen levert de algemene vorm:
L12 = {an+m bn+2m | n, m ∈ N}
De m ≥ 1 wordt opgeheven doordat je ook 0 keer de regel S → A kunt toepassen.
We kunnen dit ook anders schrijven, namelijk als
L12 := {ak bk+l | k ≥ 0, k ≥ l ≥ 0}.
Opgave 3.I We bekijken nogmaals de taal behorende bij G1 uit opgave 3.G. Er is daar al
opgemerkt dat bbaa 6∈ L(G1 ).
(i) Is
P (w) := w bevat geen ba als deelwoord
een invariant voor G1 die bewijst dat bbaa 6∈ L(G1 )?
Oplossing: Nee, want P (bA) geldt (want bA bevat niet het deelwoord ba) en A → aA
is een productieregel van de grammatica, maar er geldt duidelijk niet P (baA). Dus is
P helemaal geen invariant.
(ii) Is
P (w) := w bevat geen ba en geen bA als deelwoord
een invariant voor G1 die bewijst dat bbaa 6∈ L(G1 )?
Oplossing: Nee, ook niet. Het tegenvoorbeeld uit het vorige onderdeel werkt nu niet
meer omdat P (bA) niet geldt, maar er is wel een ander tegenvoorbeeld. Nu geldt
namelijk wel P (bS), maar P (bAS) niet terwijl S → AS wel een productieregel is.
(iii) Is
P (w) := w bevat geen ba en geen bA en geen bS als deelwoord
een invariant voor G1 die bewijst dat bbaa 6∈ L(G1 )?
Oplossing: Nee, nog steeds niet. Nu geldt wel P (SaA), maar via de regel S → Sb geldt
SaA → SbaA en P (SbaA) geldt niet.
Opgave 3.J Gebruik invarianten om te bewijzen dat:
(i) bba 6∈ L12 .
Oplossing: Een invariant is nu
P (w) := w = λ of w = S, of w begint met een A of een a
25
we zullen het bewijs hier heel uitvoerig geven. Daartoe nummeren we eerst alle productieregels:
1
S → aSb
2
S → A
3
S → λ
4
A → aAbb
5
A → abb
Het is meteen duidelijk dat P (S) geldt. Nu moeten we nog laten zien dat de invariant
onder de productieregels behouden blijft. Dus als P (v) geldt voor zekere v en v → v 0
dan moet ook P (v 0 ) gelden. Omdat onze invariant van het type “w heeft ´e´en van deze
vier vormen” is, betekent dat dat we een grote gevalsonderscheiding moeten maken.
• v = λ. In dit geval is er geen enkele productieregel toepasbaar en dus valt hier
niets te controleren. In het bijzonder geldt dus in al die gevallen P (v 0 ).
• v = S. In dit geval moeten de eerste drie regels gecontroleerd worden. Uit de regels
hierboven zien we meteen dat v 0 dan ´e´en van de volgende vormen heeft: v 0 = aSb,
v 0 = A of v 0 = λ. En in alle drie de gevallen geldt P (v 0 ). Dus ook dit geval is in
orde.
• v begint met een A. In dit geval moeten we nog meer gevallen onderscheiden omdat
het mogelijk is dat in de rest van v ook nog hulpsymbolen staan. We schrijven ze
hieronder op, gevolgd door de mogelijke productieregels. Met v = A . . . bedoelen
we dat v begint met A en er in de rest geen hulpsymbolen A of S staan. Met
v = A . . . S . . . bedoelen we dat v begint met een A en er in de staart minimaal
´e´en keer een S staat.
4
A . . . → aAbb . . .
5
A . . . → abb
1
A . . . S . . . → A . . . aSb . . .
2
A...S ... → A...A...
3
A...S ... → A...λ...
4
A . . . S . . . → aAbb . . . S . . .
5
A . . . S . . . → abb . . . S . . .
4
A . . . A . . . → aAbb . . . A . . .
4
A . . . A . . . → A . . . aAbb . . .
5
A . . . A . . . → abb . . . A . . .
5
A . . . A . . . → A . . . abb . . .
We zien meteen dat alle mogelijke v 0 ofwel met een a ofwel met een A beginnen en
dus geldt in alle gevallen P (v 0 ).
26
• v begint met een a. We maken een soortgelijke analyse van de mogelijkheden:
1
a . . . S . . . → a . . . aSb . . .
2
a...S ... → a...A...
3
a...S ... → a...λ...
4
a . . . A . . . → a . . . aAbb . . .
5
a . . . A . . . → a . . . abb . . .
Ook hier zien we dat v 0 altijd met een a begint en dus geldt P (v 0 ) altijd.
Op dit moment hebben we dus bewezen dat P een invariant is van de grammatica.
Omdat P (bba) niet geldt moet dus wel gelden bba 6∈ L12 .
Zoals gezegd is dit bewijs heel uitvoerig opgeschreven. Natuurlijk mag je het ook anders
doen. Voor het geval v begint met een a kun je bijvoorbeeld volstaan met iets als: er is
geen enkele productieregel die de eerste letter verandert en dus begint v 0 automatisch
ook met een a.
(ii) aabbb niet geproduceerd kan worden via de grammatica voor L3 die je in opgave 3.F
gemaakt hebt.
Oplossing: Een invariant is hier
P (w) := w bevat een S of een c
Wederom geldt P (S). Verder geldt dat P een invariant is onder de productieregels.
Immers de regels voor A en B veranderen het aantal S-en niet en verminderen het
aantal c’s niet. En de regels voor S laten ofwel het aantal S-en gelijk ofwel neemt het
aantal c’s met ´e´en toe. Duidelijk is ook dat aabbb geen S en geen c bevat. Dus P (aabbb)
geldt niet en dus aabbb 6∈ L3 .
(iii) aabbb niet geproduceerd kan worden via de grammatica voor L4 die je in opgave 3.F
gemaakt hebt.
Oplossing: Een voor de hand liggende keuze als invariant is
P (w) := het eerste symbool van w is hetzelfde als het laatste
Dan geldt P (S). Echter, in tegenstelling tot de verwachting blijft deze eigenschap niet
behouden onder de productieregels. Stel bijvoorbeeld dat v = SS. Dan geldt P (v).
Maar we hebben dan de productie SS → Sc. En P (Sc) geldt duidelijk niet. Hier merk
je echt dat de invariant behouden moet blijven voor alle woorden v en in het bijzonder
dus ook voor woorden als v = SS die je helemaal nooit met deze grammatica kunt
maken!
Toch is de essentie van de invariant niet slecht. We hoeven hem alleen maar uit te
breiden om problemen als hierboven te voorkomen. Neem
P (w) := het eerste symbool van w is hetzelfde als het laatste en w bevat
maximaal ´e´en S die dan ook nog eens precies in het midden van w staat
Duidelijk is dat P (S) weer geldt. Voor de productieregels maken we de volgende gevalsonderscheiding.
• v bevat geen S. Dan is het heel simpel: er zijn geen productieregels toepasbaar
dus voor alle v 0 met v → v 0 geldt P (v 0 ).
27
• v bevat precies ´e´en S die in het midden staat van v. Dus v = xySzx met x ∈
{a, b, c}, y, z ∈ {a, b, c}∗ en |y| = |z|. De volgende producties zijn dan mogelijk:
xySzx → xyaSazx
xySzx → xybSbzx
xySzx → xycSczx
xySzx → xyazx
xySzx → xybzx
xySzx → xyczx
En het is meteen duidelijk dat P (v 0 ) geldt voor al deze mogelijkheden. Dus is P
een invariant van de grammatica. Duidelijk is ook dat P (aabbb) niet geldt. Dus
aabbb 6∈ L4 .
Opgave 3.K
(i) Bekijk de volgende grammatica over alfabet {a, b, c}:
S → A|B
A → abS | λ
B → bcS | λ
Ga na of je de volgende woorden kunt produceren met deze grammatica: abab, bcabbc,
abba. Lukt dat, geef dan een productie. Lukt dat niet, geef dan een geschikte invariant
waarmee je dit zou kunnen bewijzen.
Oplossing: abab en bcabbc kunnen wel geproduceerd worden:
S → A → abS → abA → ababS → ababA → abab
S → B → bcS → bcA → bcabS → bcabB → bcabbcS → bcabbcB → bcabbc
Het woord abba kan niet worden geproduceerd. Bekijk maar de eigenschap
P (w) := het laatste symbool van w dat geen hulpsymbool is, is geen a
Dit is een invariant. Omdat S geen niet-hulpsymbolen bevat, geldt P (S) automatisch.
Stel nu dat we een v hebben met P (v). Dan is het laatste symbool dat geen hulpsymbool
is geen a, maar een b of c. We onderscheiden weer twee gevallen:
• Er staan alleen maar hulpsymbolen in v. Dan zijn we op dezelfde manier als voor
S meteen klaar.
• Er is echt een laatste niet-hulpsymbool aanwezig. Noem dat x. We maken nu verder
onderscheid naar de in v aanwezige hulpsymbolen en hun bijbehorende producties.
– Als er een hulpsymbool voor x staat, dan maakt het niet uit welke productieregel we daarop toepassen. Omdat er alleen maar dingen voor x veranderen,
blijft x het laatste niet-hulpsymbool dat dus automatisch ongelijk aan a blijft.
– Als er een A achter x staat kunnen er twee productieregels worden toegepast:
. . . x . . . A . . . → . . . x . . . abS . . .
...x...A... → ...x...λ...
28
Omdat er op de . . . achter de x alleen maar hulpsymbolen kunnen staan, is in
het eerste geval het laatste niet-hulpsymbool de b direct voor de S geworden
en dus ongelijk aan a. In het tweede geval is x het laatste niet-hulpsymbool
gebleven en dus ook nog steeds ongelijk aan a. In beide gevallen geldt P (v 0 )
dus.
– Als er een B achter x staat, krijg je twee analoge gevallen. In het ene geval
wordt het laatste niet-hulpsymbool een c en in het andere geval blijft het weer
x. Dus ook nu geldt P (v 0 ) voor alle mogelijkheden.
– Als er een S achter de x staat zijn er ook twee mogelijkheden. Maar beide
leveren alleen maar andere hulpsymbolen op en dus blijft x automatisch het
laatste niet-hulpsymbool (en dus ongelijk aan a). Dus ook in dit geval geldt
P (v 0 ).
Dus P is inderdaad een invariant. Echter, het laatste niet-hulpsymbool van abba is een
a en dus geldt P (abba) niet en kan dat woord dus niet geproduceerd worden.
(ii) Beschrijf de reguliere taal L13 die deze grammatica produceert met een reguliere expressie.
Oplossing: De taal L13 die deze grammatica produceert wordt ook gegeven
door de
reguliere expressie ((ab) ∪ (bc))∗ , in andere woorden L13 = L ((ab) ∪ (bc))∗ .
(iii) Maak een rechtslineaire grammatica voor de taal L14 bestaande uit woorden van de
vorm ab . . . aba (dus a’s en b’s om en om met vooraan en achteraan een a; zorg dat je
ook a krijgt).
Oplossing: Een rechts-lineaire grammatica voor de woorden van de vorm ab . . . aba is
S → abS | a
Een andere mogelijkheid die natuurlijk ook goed is:
S → aB
B → bS | λ
Opgave 3.L Geef rechtslineaire grammatica’s voor de talen uit opgave 3.D:
(i) L6 := {w ∈ {a, b}∗ | iedere a in w wordt direct gevolgd door een b},
Oplossing:
S → abS | bS | λ
(ii) L7 := de taal van alle goedgevormde integer-expressies. Deze bestaan uit de symbolen 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, maar ze beginnen nooit met een 0 (behalve het getal 0 zelf
natuurlijk) en mogen eventueel worden voorafgegaan door een + of een −.
Oplossing:
S → +T | −T | T
T
→ 0 | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C
C → 0C | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C | λ
(iii) L8 := de taal van alle goedgevormde rekenkundige expressies zonder haakjes. Deze
bestaan uit natuurlijke getallen met daartussen de operatoren +, − of ×, bijvoorbeeld
7 + 3 × 29 − 78.
29
Oplossing:
S → 0 | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C
C → 0C | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C | λ | A
A → +S | −S | ×S
Merk op dat in deze uitwerking een rekenkundige expressie ook kan bestaan uit ´e´en
getal zonder operatoren.
Opgave 3.M Hieronder tonen we een grammatica voor een klein gedeelte van de Engelse
taal.
S = hzini
hzini
honderwerpvormi
heigennaami
hzelfstandignaamwoordi
hlidwoordi
hwerkwoordvormi
hwerkwoordi
hbijwoordi
hbijvoeglijknaamwoordlijsti
hbijvoeglijknaamwoordi
hlijdendvoorwerpvormi
hlijdendvoorwerpvormi
→
→
→
→
→
→
→
→
→
→
→
→
→
honderwerpvormihwerkwoordvormi.
honderwerpvormihwerkwoordvormihlijdendvoorwerpvormi.
heigennaami | hlidwoordihzelfstandignaamwoordi
John | Jill
bicycle | mango
a | the
hwerkwoordi | hbijwoordihwerkwoordi
eats | rides
slowly | frequently
hbijvoeglijknaamwoordihbijvoeglijknaamwoordlijsti | λ
big | juicy | yellow
hbijvoeglijknaamwoordlijstiheigennaami
hlidwoordihbijvoeglijknaamwoordlijstihzelfstandignaamwoordi
(i) Is deze grammatica rechtslineair?
Oplossing: Deze grammatica is contextvrij, maar niet rechts-lineair (bijvoorbeeld de
eerste productieregel voldoet niet).
(ii) Laat zien hoe je de volgende zin produceert: Jill frequently eats a big juicy yellow mango.
Oplossing:
• <zin>
• →<onderwerpvorm><werkwoordvorm><lijdendvoorwerpvorm>. (R2)
• →<eigennaam><werkwoordvorm><lijdendvoorwerpvorm>. (R3.1)
• →Jill<werkwoordvorm><lijdendvoorwerpvorm>. (R4.2)
• →Jill<bijwoord><werkwoord><lijdendvoorwerpvorm>. (R7.2)
• →Jill frequently <werkwoord><lijdendvoorwerpvorm>. (R9.2)
• →Jill frequently eats <lijdendvoorwerpvorm>. (R8.1)
• →Jill frequently eats <lidwoord><bijvoeglijknaamwoordlijst><zelfstandignaamwoord>. (R13)
• →Jill frequently eats a <bijvoeglijknaamwoordlijst><zelfstandignaamwoord>. (R6.1)
• →Jill frequently eats a <bijvoeglijknaamwoord><bijvoeglijknaamwoordlijst><zelfstandignaamwoord>. (R10.1)
• →Jill frequently eats a big <bijvoeglijknaamwoordlijst><zelfstandignaamwoord>. (R11.1)
• →Jill frequently eats a big <bijvoeglijknaamwoord><bijvoeglijknaamwoordlijst><zelfstandignaamwoord>. (R10.1)
• →Jill frequently eats a big juicy <bijvoeglijknaamwoordlijst><zelfstandignaamwoord>. (R11.2)
• →Jill frequently eats a big juicy <bijvoeglijknaamwoord><bijvoeglijknaamwoordlijst><zelfstandignaamwoord>. (R10.1)
• →Jill frequently eats a big juicy yellow <bijvoeglijknaamwoordlijst><zelfstandignaamwoord>. (R11.3)
• →Jill frequently eats a big juicy yellow <zelfstandignaamwoord>. (R10.2)
• →Jill frequently eats a big juicy yellow mango. (R5.2)
(iii) Maak zelf andere zinnetjes.
Oplossing: Doe zelf.
30
Opgave 3.N Bekijk de volgende automaat M1 .
M1 :
/ q0
O
/ q1
a
b
a
b
& x
q3 o
a
b
a
q2
;
b
k
In deze automaat is Q = {q0 , q1 , q2 , q3 }, F = {q3 } en Σ = {a, b}.
(i) Ga voor de volgende woorden na of ze geaccepteerd worden: abaab, aaaba, bab, λ en
aabbab.
Oplossing: De woorden worden op de volgende manier verwerkt:
a
b
a
a
b
a
a
a
b
a
b
a
b
a
a
b
b
a
abaab : q0 → q1 → q3 → q0 → q1 → q3
aaaba : q0 → q1 → q2 → q3 → q2 → q3
bab : q0 → q2 → q3 → q2
λ : q0
b
aabbab : q0 → q1 → q2 → q2 → q2 → q3 → q2
Alleen de woorden abaab en aaaba eindigen in een eindtoestand (q3 ), dus alleen die twee
woorden worden geaccepteerd.
(ii) Gelden de volgende uitspraken? Geef steeds een tegenvoorbeeld of een bewijs.
(1) Als w geaccepteerd wordt, dan wordt wabba ook geaccepteerd.
Oplossing: Dit is waar. Stel dat w geaccepteerd wordt, dan zit de automaat na het
lezen van w dus in toestand q3 . Vervolgens moet vanuit q3 dan nog de string abba
a
b
b
a
gelezen worden: q3 → q0 → q2 → q2 → q3 . En dus bevindt de automaat zich na
het lezen van wabba ook in een eindtoestand en wordt dat woord dus geaccepteerd.
(2) Als w geaccepteerd wordt, dan wordt wab niet geaccepteerd.
Oplossing: Dit is waar. Bewijs het nu zelf analoog aan het vorige geval.
(3) Als w niet geaccepteerd wordt, dan wordt waa ook niet geaccepteerd.
Oplossing: Dit is niet waar. Neem bijvoorbeeld w = a. Dan wordt w niet
geaccepteerd, maar waa wordt wel geaccepteerd.
(4) Als w niet geaccepteerd wordt, dan wordt wbb ook niet geaccepteerd.
Oplossing: Dit is waar. Als de automaat na w ge¨eindigd is en w is niet geaccepteerd, zit hij dus in q0 , q1 of q2 . Maar vanuit elk van deze toestanden ga je na het
verwerken van bb naar toestand q2 en dat is geen eindtoestand en dus wordt wbb
inderdaad niet geaccepteerd.
Opgave 3.O Concludeer uit de grammatica G3 dat
(i) (aba)k ab ∈ L(G3 ) voor k ≥ 0,
Oplossing: S → abaS → . . . → (aba)k S → (aba)k ab voor iedere k ≥ 0. Dus eerst k
keer de regel S → abaS toepassen en dan ´e´en keer de regel S → ab.
(ii) aabk a ∈ L(G3 ) voor k ≥ 0,
Oplossing: S → aaB → aabB → aabbB → . . . → aabk B → aabk a voor iedere k ≥ 0.
Dus eerst de regel S → aaB toepassen, dan k keer regel B → bB en tenslotte ´e´en keer
B → a.
31
(iii) als w ∈ L(G3 ), dan ook abaw ∈ L(G3 ),
Oplossing: S → abaS en omdat w geaccepteerd is weet je ook dat er een S → . . . → w
bestaat. Maar dan bestaat dus ook S → abaS → . . . → abaw.
(iv) als w ∈ L(G3 ), dan ook aaaaw ∈ L(G3 ),
Oplossing: S → aaB → aaaaS en je weet ook dat S → . . . → w bestaat, dus ook
S → aaB → aaaaS → . . . → aaaaw.
Opgave 3.P Maak een rechtslineaire grammatica bij de eindige automaat M0 , zoals boven
gedaan voor M1 . Verklein deze grammatica door overbodige productieregels en hulpsymbolen
weg te laten.
Oplossing: Introduceer S voor q0 , A voor q1 , B voor q2 en C voor q3 .
S → aA | bC
A → bA | aB
B → aC | bB | λ
C → aC | bC
Omdat A, B en C recursief naar zichzelf verwijzen, kun je die niet elimineren door substitutie.
Echter, omdat elke productie die naar C gaat nooit tot een woord dat geaccepteerd wordt zal
leiden, kan deze C weggelaten worden zonder dat de taal die bij de grammatica hoort wijzigt.
Je krijgt dan:
S → aA
A → bA | aB
B → bB | λ
Opgave 3.Q Maak een eindige automaat die de taal van de volgende grammatica accepteert.
S → abS | aA | bB
A → aA | λ
B → bB | λ
Oplossing: Eerst eens kijken welke woorden er zoal geproduceerd kunnen worden: a,
aa, aaa, b, bb, bbb, aba, abaa, abaaa, abb, abbb, abbb, ababa, ababaa, ababaaa, ababb, ababbb,
ababbbb,. . . . De taal waar het hier om gaat lijkt dan ook de taal L((ab)∗ (aa∗ ∪ bb∗ )) te zijn.
Een automaat die diezelfde taal accepteert is:
/ q0 k a / q1
/ q2
a
b
b
3
b
q3
a
/ q4
a,b
32
U
~
b
k
a
Opgave 3.R Bekijk de eindige automaat M3 :
b
M3 :
a
/ q0 k
b
+ q
1
b
b
a
q2
a
k
Maak een rechtslineaire grammatica die L(M3 ) genereert.
Oplossing: Eerst weer eens kijken welke woorden allemaal geaccepteerd worden: λ, b, bb,
bbb, ab, abab, bab, bbab, aab, aaab, aaaab, . . . . Is dit misschien de taal van alle woorden die
niet op een a eindigen? Introduceer weer S voor q0 , A voor q1 en B voor q2 en je krijgt de
grammatica:
S → bS | aA | λ
A → bS | aB
B → bS | aB
Opvallend is dat de laatste twee regels min of meer hetzelfde zijn. Als je hier goed over
nadenkt, kun je inzien dat je de grammatica kunt reduceren tot:
S → bS | aA | λ
A → bS | aA
Dit hadden we natuurlijk ook al aan de automaat kunnen zien: de uitgaande pijlen van q1
en q2 zijn gelijk en geen van twee¨en is een eindtoestand, dus hun gedrag is hetzelfde. Dus
kunnen ze ook wel samengenomen worden en dan krijgen we de simpelere automaat
b
M30 :
/ q0 k
a
+ q
1
b
a
k
die dezelfde taal accepteert als M3 .
Opgave 3.S Bekijk de eindige automaat M4 :
b
M4 :
/ q0 k
a
+ q
1
b
k
(i) Maak een rechtslineaire grammatica die L(M4 ) genereert.
Oplossing:
S → bS | aA
A → aA | bS | λ
33
a
(ii) Geef een (eenvoudige) beschrijving van L(M4 ).
Oplossing: Door sterk te letten op de structuur van de automaat kom je al snel tot
deze beschrijving: {bk aal (bbm aan )p | k, l, m, n, p ≥ 0} of L(b∗ aa∗ (bb∗ aa∗ )∗ ). Echter, als
je wat verder kijkt, zie je dat de taal L(M4 ) eigenlijk gekarakteriseerd wordt door het
feit dat het laatste symbool een a moet zijn. Maar dat betekent dat de taal ook zo kan
worden beschreven: L(M4 ) = L((a ∪ b)∗ a).
(iii) Als we alle toestanden eindtoestand maken, welke taal accepteert M4 dan?
Oplossing: {a, b}∗ (alle woorden over {a, b}).
(iv) Als we de eindtoestanden en de niet-eindtoestanden omwisselen, welke taal accepteert
M4 dan?
Oplossing: Het complement van L(M4 ), dwz. alle woorden over {a, b} die niet in
L(M4 ) zitten. Uit de structuur van de automaat volgt de beschrijving: {bk (aal bbm )p |
k, l, m, p ≥ 0}. In termen van reguliere expressies krijgen we dan de beschrijving
L(b∗ (aa∗ bb∗ )∗ ). Echter, als we even herinneren dat L(M4 ) = L((a ∪ b)∗ a), dan is het
complement natuurlijk alles dat niet op een a eindigt. Dus wat op een b eindigt of λ.
Dus een simpelere beschrijving voor het complement van L(M4 ) is L((a ∪ b)∗ b ∪ λ).
Opgave 3.T Maak een eindige automaat die de taal L15 := {(ab)k (aba)l | k, l ≥ 0} over
Σ = {a, b} accepteert.
Oplossing: Deze opgave staat bekend als een erg lastige opgave!
/ q0
/ q2
a
b
a
' w
7 > q1 U `
b
a,b
b
q7 o
a
q6 o
b
/ q3
R
b
b
a
a
q o
8 5
b
a
q4
a
Hoe vind je nu zo’n automaat? Een combinatie van nadenken en proberen om zo min mogelijk
toestanden toe te voegen. Een reconstructie:
1. λ ∈ L15 dus begintoestand q0 moet tevens eindtoestand zijn.
b
2. q0 → . . . ? Merk op dat woorden uit L15 nooit met een b beginnen, dus weten we meteen
b
dat er een put q1 nodig is met q0 → q1 .
a
3. q0 → . . . ? Omdat a 6∈ L15 moet er een nieuwe toestand q2 gemaakt worden die geen
a
eindtoestand is en q0 → q2 .
a
b
4. q1 → q1 en q1 → q1 want q1 is de put.
a
a
5. q2 → . . . ? Omdat woorden nooit met aa beginnen, moet a naar de put, dus q2 → q1 .
b
6. q2 → . . . ? Omdat ab ∈ L15 moet b naar een eindtoestand: q0 of een nieuwe.
b
• Als q2 → q0 dan wordt aba niet geaccepteerd, dus dat kan niet.
34
b
Er moet dus een nieuwe eindtoestand q3 worden toegevoegd: q2 → q3 .
a
7. q3 → . . . ? Omdat aba ∈ L15 moet a naar een eindtoestand: q0 , q3 of een nieuwe.
a
• Als q3 → q0 dan wordt abaab geaccepteerd, terwijl abaab 6∈ L15 , dus dat kan niet.
a
• Als q3 → q3 dan wordt abaa geaccepteerd, terwijl abaa 6∈ L15 , dus dat kan ook
niet.
a
Er moet dus een nieuwe eindtoestand q4 worden toegevoegd: q3 → q4 .
b
b
8. q3 → . . . ? Omdat woorden nooit met abb beginnen, moet b naar de put: q3 → q1 .
a
9. q4 → . . . ? Omdat abaa 6∈ L15 mag a niet naar een eindtoestand en omdat abaaba ∈ L15
mag a niet naar de put. Dus naar q2 of naar een nieuwe niet-eindtoestand.
a
• Als q4 → q2 dan wordt abaab geaccepteerd, terwijl abaab 6∈ L15 , dus dat kan niet.
a
Er moet dus een nieuwe niet-eindtoestand q5 worden toegevoegd: q4 → q5 .
b
10. q4 → . . . ? Omdat abab ∈ L15 moet b naar een eindtoestand: q0 , q3 , q4 of een nieuwe.
b
• Als q4 → q0 dan wordt ababaaba naar de put gestuurd, terwijl ababaaba ∈ L15 , dus
dat kan niet.
b
• Als q4 → q3 dan zijn er geen problemen, dus laten we dit maar proberen en kijken
of we de automaat af kunnen maken.
b
Dus q4 → q3 .
a
a
11. q5 → . . . ? Omdat woorden nooit met abaaa beginnen, moet a naar de put: q5 → q1 .
b
12. q5 → . . . ? Omdat abaab 6∈ L15 , moet b naar een niet-eindtoestand. Omdat abaaba ∈
L15 , mag b niet naar de put. Dus de kandidaten zijn: q2 , q5 of een nieuwe nieteindtoestand.
b
• Als q5 → q2 dan wordt abaabb geaccepteerd, terwijl abaabb 6∈ L15 , dus dat kan niet.
b
• Als q5 → q5 dan wordt abaaba naar de put gestuurd, terwijl abaaba ∈ L15 , dus dat
kan ook niet.
b
Er moet dus een nieuwe niet-eindtoestand q6 worden toegevoegd: q5 → q6 .
a
13. q6 → . . . ? Omdat abaaba ∈ L15 moet a naar een eindtoestand: q0 , q3 , q4 of een nieuwe.
a
• Als q6 → q0 dan wordt abaabaab geaccepteerd, terwijl abaabaab 6∈ L15 , dus dat kan
niet.
a
• Als q6 → q3 dan wordt weer abaabaab geaccepteerd, terwijl abaabaab 6∈ L15 , dus
dat kan ook niet.
a
• Als q6 → q4 dan wordt abaababa geaccepteerd, terwijl abaababa 6∈ L15 , dus dat kan
ook niet.
a
Er moet dus een nieuwe eindtoestand q7 worden toegevoegd: q6 → q7 .
35
b
14. q6 → . . . ? Omdat woorden nooit met abaabb kunnen beginnen, moet b naar de put:
b
q6 → q1 .
a
15. q7 → . . . ? Omdat abaabaa 6∈ L15 moet a naar een niet-eindtoestand: q2 , q5 , q6 of een
nieuwe.
a
• Als q7 → q2 dan wordt abaabaab geaccepteerd, terwijl abaabaab 6∈ L15 , dus dat kan
niet.
a
• Als q7 → q5 dan zijn er geen problemen. Je kunt hier dan meteen de loop van de
laatste aba-blokken herkennen.
a
Dus q7 → q5 .
b
16. q7 → . . . ? Omdat woorden nooit beginnen met abaabab, moet b naar de put. Dus
b
q7 → q1 .
En nu hebben we een geldige automaat waar precies de juiste woorden in worden geaccepteerd!
Opgave 3.U Maak een eindige automaat die de taal L16 := {(ab)k x(ab)l | x ∈ {a, b}, k, l ≥
0} over Σ = {a, b} accepteert.
Oplossing: Deze is waarschijnlijk iets makkelijker dan de vorige, maar desondanks nog
vrij lastig. (Ga voor jezelf na dat woorden van de vorm (ab)k a(ab)l en (ab)k b(ab)l inderdaad
geaccepteerd worden.)
/ q0
J
b
b
a
q1
b
a
a
/ q2 k
O
+
q4
b
b
/ q3
a
a
/ q5
k
a,b
Hoe vind je deze automaat nu? We gebruiken hier een andere methode dan bij opgave 3.T.
In het dictaat staat al beschreven hoe je vanuit een rechtslineaire grammatica vrij eenvoudig
een deterministische automaat kunt maken. Dus beginnen we hier ook maar met het maken
van zo’n rechtslineaire grammatica.
S → abS | aA | bA
A → abA | λ
Helaas werkt het algoritme uit het dictaat niet direct. Dat komt doordat er overlap is: de a is
zowel het begin van abS als van aA. Dus zorgen we ervoor dat we een equivalente grammatica
maken waar die overlap is verdwenen door een extra hulpsymbool in te voeren.
S → aP | bA
P
→ bS | A
A → abA | λ
Helaas hebben we nu een overgang P → A ge¨ıntroduceerd en dan werkt het algoritme ook
niet. Dus vervangen we de grammatica weer door een equivalente grammatica.
S → aP | bA
P
→ bS | abA | λ
A → abA | λ
36
Ga na dat deze inderdaad equivalent is! De grammatica die we nu hebben is van de goede
vorm en we kunnen dus het algoritme erop los laten door voor elk hulpsymbool een toestand
te maken (S → q0 , P → q1 en A → q2 ).
/ q0
J
b
/ q2
>
k
b
a
ab
ab
q1
Vervolgens breken we de woorden bij de pijlen op door extra toestanden te maken:
/ q0
J
b
/ q2 k
O
b
a
q1
a
+
q4
b
b
/ q3
a
En als we nu nog een put toevoegen krijgen we precies de automaat die we hierboven al
hadden laten zien.
/ q0
J
b
b
a
q1
b
a
a
/ q2 k
O
+
q4
b
b
/ q3
a
a
/ q5
k
a,b
Echter, er is nog een kleinere automaat die dezelfde taal voortbrengt. Als we namelijk naar
de toestanden q3 en q4 kijken dan zien we dat ze precies dezelfde uitgaande pijlen hebben:
een a-pijl naar put q5 en een b-pijl naar q2 . Maar dat betekent dat we die twee toestanden
ook samen mogen nemen, zonder dat de taal verandert.
/ q0
J
b
q1
b
a
/ q2
J
b
a
/ q3
a
b
a
/ q5
k
a,b
NB: Indien je op dezelfde manier te werk was gegaan als beschreven bij opgave 3.T dan had
je meteen deze kleinere automaat gekregen.
Opgave 3.V Bekijk de automaat M5 die (input) getallen in ‘normale’ decimale notatie accepteert. Zo’n getal mag eventueel beginnen met een + of een −, maar niet met een 0, behalve
natuurlijk als het van de vorm 0, 5 is, want dan is het weer wel goed. In het diagram staat
37
0 . . . 9 voor ´e´en van de cijfers uit 0 t/m 9 enz.
/ q0
M5 :
/ q1
>
0
+−
0
q2
1...9
,
~
I
1...9
q3
,
0...9
* q
4
k
0...9
(i) Vind je de automaat M5 goed? Worden alle ‘juiste’ getallen geaccepteerd en alle ‘foute’
verworpen?
Oplossing: Nee, de automaat is niet goed. Om te beginnen is hij niet deterministisch:
er ontbreekt een put om bijvoorbeeld vanuit q0 een komma te kunnen verwerken.
Daarnaast accepteert de automaat ook nog eens vreemde getallen: bijvoorbeeld ‘+0’,
‘-0’ en ‘+37,’. Zijn getallen zonder komma in decimale notatie? En kan een getal in
decimale notatie met een komma eindigen? Hier staan we dat niet toe, maar je kunt
daarover van mening verschillen. Als jij hier anders over denkt, zorg dan dat jouw
automaat overeenkomt met jouw idee over decimale getallen.
(ii) Pas M5 aan als je het er niet mee eens bent.
Oplossing: Er moeten verschillende problemen worden opgelost:
• Om te voorkomen dat getallen op een komma kunnen eindigen: voeg een toestand
q5 toe waar de ‘komma’ pijlen uit q1 en q3 naar toe wijzen en van q5 naar q4 een
0 . . . 9 pijl.
• Om te voorkomen dat er getallen zonder komma worden geaccepteerd: zorg dat q1
en q3 niet langer eindtoestanden zijn.
• Tenslotte moet er een put worden toegevoegd: maak een nieuwe q6 waar alle
‘verboden’ symbolen naar toe gaan.
,
M50 :
/ q0
/ q1
>
0
+−
0
q2
1...9
+−0...9
(
/ q6
7> IP k
+−,
,
+−,
+−,
~
I
q3
/ q5
1...9
,
0...9
0...9
q4
k
+−
38
0...9
+−,0...9
(iii) Geef een rechtslineaire grammatica die dezelfde taal als M5 genereert.
Oplossing: De volgende grammatica accepteert precies de taal van de originele M5 ,
dus inclusief de foute getallen als ‘+37,’.
S → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B | +C | −C
A → ,D | λ
B → , D | λ | 0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B
C → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B
D → λ | 0D | 1D | 2D | 3D | 4D | 5D | 6D | 7D | 8D | 9D
En voor M50 wordt het:
S → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B | +C | −C
A → ,D
B → , D | 0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B
C → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B
D → 0E | 1E | 2E | 3E | 4E | 5E | 6E | 7E | 8E | 9E
E → λ | 0E | 1E | 2E | 3E | 4E | 5E | 6E | 7E | 8E | 9E
39
4
Discrete wiskunde
Opgave 4.A Bewijs dat er in een boom van een punt p naar een ander punt q precies ´e´en
pad bestaat.
Oplossing: Deze opgave is nagenoeg geheel gebaseerd op definitie 4.2. Volgens die definitie
is een boom een samenhangende graaf zonder cykels. We moeten twee beweringen bewijzen:
• Er is minimaal ´e´en pad van p naar q.
• Er is maximaal ´e´en pad van p naar q.
Het eerste volgt meteen uit de definitie van samenhangend: tussen ieder tweetal punten
bestaat een pad. Dus ook tussen onze punten p en q.
Het tweede is makkelijk in te zien, maar moeilijk helemaal precies te bewijzen. Een
gebruikelijke techniek om aan te tonen dat er maximaal ´e´en pad is, is om aan te nemen dat
er twee verschillende paden zijn en dan tot een tegenspraak te komen:
p = x0 → x1 → x2 → · · · → xn−1 → xn = q en p = y0 → y1 → y2 → · · · → ym−1 → ym = q
We proberen aan te tonen dat we hiermee een cykel kunnen maken, wat een tegenspraak is.
Het eenvoudige argument dat we dan dus ook een cykel
p = x0 → x1 → x2 → · · · → xn−1 → xn = q = ym → ym−1 → ym−2 → · · · → y1 → y0 = p
hebben, gaat niet op omdat dit misschien geen pad is. Volgens de definitie van paden mogen
we elke lijn maar ´e´en keer doorlopen in een pad en dat is hier niet gegarandeerd. Bekijk maar
eens het volgende plaatje.
b
p
a
d
q
c
Er zijn duidelijk twee paden p → a → b → d → q en p → a → c → d → q, maar als je ze
achter elkaar zet krijg je
p→a→b→d→q→d→c→a→p
en daarin komen de lijnen (p, a) en (d, q) twee keer voor en dus is het geen pad en dus ook
geen cykel. Maar door de dubbelvoorkomende lijnen weg te laten kun je wel altijd een cykel
vinden. Hier bijvoorbeeld
a→b→d→c→a
En dus hebben we toch een tegenspraak. In het bijzonder is het niet nodig dat onze tegenvoorbeeldcykel door de speciale punten p en q gaat! Het algemene bewijs is te lastig en laten
we daarom weg. We volstaan met het idee om zo’n cykel te construeren:
• Verwijder het gemeenschappelijke beginstuk van de twee paden zodat je in een p0 begint
waar de twee paden meteen in de eerste stap verschillend zijn. Je hebt dan dus nog
steeds twee paden, alleen nu van p0 naar q.
40
• Bepaal het eerste punt waar de twee paden elkaar weer kruisen. Omdat dat in elk geval
in q gebeurt, weet je zeker dat het een keer moet gebeuren. Noem dit punt q 0 . We
hebben dan twee paden van p0 naar q 0 .
• Omdat we p0 en q 0 op deze manier geconstrueerd hebben, weten we nu dat we wel een
echt pad krijgen als we eerst het ene pad van p0 naar q 0 nemen en er vervolgens het
tweede pad achterstevoren, dus van q 0 naar p0 achter plakken.
• In het bijzonder is dit pad een cykel en dus kunnen we geen boom hebben als er twee
paden tussen p en q bestaan. Dus kan er maximaal ´e´en zo’n pad bestaan.
Opgave 4.B Een brug in een graaf G is een lijn l waarvoor geldt: als je l uit G weglaat,
wordt het aantal componenten verhoogd. Bewijs dat in een boom iedere lijn een brug is.
Oplossing: Kies maar eens een willekeurige lijn. Die lijn verbindt twee punten p en q
en is dus in het bijzonder een pad van p naar q. Op grond van opgave 4.A weten we nu dat
als we deze lijn weghalen, daarmee het enige pad tussen p en q is verdwenen. Dus zitten p
en q niet meer in dezelfde component en is door het weghalen het aantal componenten dus
verhoogd. Dus was deze willekeurige lijn een brug. Maar dan is elke lijn in een boom dus een
brug.
Opgave 4.C Bewijs dat voor alle n ≥ 1 geldt dat de Kn precies 21 n(n − 1) lijnen heeft.
Oplossing: Elk punt in Kn heeft graad n − 1. Dus vanuit elk punt vertrekken er n − 1
lijnen. Er zijn n punten, dus op die manier tellen we n(n − 1) lijnen. Echter, omdat elk punt
zowel beginpunt als eindpunt is, hebben we nu alle lijnen dubbel geteld. Dus het aantal lijnen
in Kn is 21 n(n − 1).
Opgave 4.D Ga na welke van de onderstaande grafen isomorf zijn:
1
3
G1
2
5
4
7
G2
6
a
8
c
G3
b
d
Als twee grafen isomorf zijn, geef dan een bijbehorend isomorfisme. En als twee grafen niet
isomorf zijn, leg dan uit waarom zo’n isomorfisme niet kan bestaan.
Oplossing: Isomorfe grafen hebben evenveel punten met dezelfde graden. In G2 hebben
alle punten graad 2, in de andere twee grafen niet. Dus G2 is niet isomorf met de andere twee
grafen. G1 en G3 zijn wel isomorf. Een isomorfisme ϕ is gegeven door ϕ(1) = b, ϕ(2) = a,
ϕ(3) = c en ϕ(4) = d, of afgekort zonder expliciet ϕ te vermelden: 1 7→ b, 2 7→ a, 3 7→ c en
4 7→ d.
Opgave 4.E Hier is een plattegrond G van een dorpje, waarbij de straten aangegeven worden
door lijntjes. Op ieder hoekpunt bevindt zich een kroeg. De kroegen zijn aangegeven door
punten, genummerd van 1 t/m 12:
41
11
1
2
3
8
9
12
4
5
6
7
10
Formuleer de volgende vragen in termen van Hamilton- of Euler-circuits/paden en beantwoord ze:
(i) Is het mogelijk, een wandeling te maken waarbij je iedere straat precies ´e´en keer doorloopt? Zo ja, geef dan zo’n wandeling. Zo nee, leg uit waarom niet.
Oplossing: Een wandeling waarbij je iedere straat–dus ieder lijntje–precies ´e´en keer
doorloopt is een Euler-pad. De vraag is dus eigenlijk of er een Euler-pad bestaat. Met
stelling 4.13 is dit makkelijk te beantwoorden. Hiervoor moeten we de graden van de
kroegen–de punten–bepalen.
punt graad punt graad punt graad punt graad
1
2
4
4
7
3
10
3
2
4
5
4
8
4
11
4
3
4
6
4
9
2
12
4
Alleen de punten 7 en 10 hebben oneven graad, dus volgens de stelling van Euler bestaat
er een Euler-pad. Een concreet voorbeeld van zo’n pad is: 7 → 12 → 5 → 10 → 7 →
6 → 12 → 11 → 4 → 8 → 1 → 2 → 11 → 3 → 9 → 8 → 2 → 3 → 4 → 5 → 6 → 10.
(ii) Is het mogelijk, een wandeling te maken waarbij je iedere straat precies ´e´en keer doorloopt en bovendien begint en eindigt bij kroeg 3? Zo ja, geef dan zo’n wandeling. Zo
nee, leg uit waarom niet.
Oplossing: Nu is de vraag eigenlijk of er een Euler-cykel bestaat. Het antwoord daarop
komt weer uit de stelling van Euler. Die stelt dat een Euler-cykel alleen bestaat als elk
punt een even graad heeft. We hebben al gezien dat dat hier niet het geval is en dus
bestaat er geen Euler-cykel. (En zeker geen die begint en eindigt bij punt 3.)
(iii) Bestaat er een kroegentocht waarin iedere kroeg precies ´e´en keer voorkomt? Zo ja, geef
dan zo’n tocht. Zo nee, leg uit waarom niet.
Oplossing: Nu gaat de wandeling door alle punten en gaat het dus om de vraag of er
een Hamilton-pad bestaat. Zo’n pad bestaat inderdaad. Neem bijvoorbeeld 12 → 7 →
10 → 6 → 5 → 4 → 11 → 3 → 9 → 8 → 1 → 2.
Opgave 4.F Hieronder vind je twee plattegronden van huizen.
(i) Teken bij elke plattegrond de bijbehorende graaf, waarbij je de vertrekken (inclusief het
42
buitengebied) door punten voorstelt en de deuren door lijnen. Bedenk dat punten in
een graaf een naam moeten hebben!
Oplossing:
g
a
e
b
d
c
a
f
e
b
c
d
Of in een wat schematischere weergave:
g
e
a
b
c
a
b
d
e
f
c
d
(ii) Zoek voor elk huis uit of het mogelijk is een rondwandelingetje te maken waarin je iedere
deur precies ´e´en keer gebruikt en bij je uitgangspunt terugkeert. Verklaar je antwoord en
mocht je conclusie zijn dat zo’n rondwandeling bestaat, geef dan een expliciet voorbeeld.
Oplossing: Omdat de deuren overeenkomen met de lijnen in de graaf, wordt hier dus
gevraagd of er een Euler-cykel is. Dus moeten we weer de graden gaan tellen.
a b c d e f g
Eerste huis
4 2 2 2 4 2 4
Tweede huis 2 4 2 2 4
In beide huizen hebben alle punten een even graad, dus kun je volgens de stelling van
Euler (4.13) een Euler-cykel maken. Bijvoorbeeld a → g → d → a → b → e → f → c →
g → e → a in het eerste huis en e → a → b → c → e → b → d → e in het tweede huis.
(iii) Zoek voor elk huis uit of het mogelijk is een rondwandelingetje te maken waarin je ieder
vertrek (en de tuin) precies ´e´en keer bezoekt en bij je uitgangspunt terugkeert. Verklaar
je antwoord en mocht je conclusie zijn dat zo’n rondwandeling bestaat, geef dan een
expliciet voorbeeld.
Oplossing: Omdat de vertrekken met de punten overeenkomen wordt er nu dus om
een Hamilton-circuit gevraagd. Bij het eerste huis is zo’n pad wel mogelijk. Neem
bijvoorbeeld g → d → a → b → e → f → c → g.
In het tweede huis is zo’n pad niet mogelijk. In een Hamilton-circuit moet namelijk
iedere lijn die aan een punt met graad twee ligt voorkomen (we moeten dat punt immers
in en uit). Als we die lijnen (e, c), (c, b), (e, a), (a, b), (e, d) en (d, b) tekenen, zien we
dat we het circuit niet af kunnen maken. Zowel punt e als b komt in drie van deze lijnen
voor en in een Hamilton-circuit mag elk punt maar in twee lijnen voorkomen.
43
Opgave 4.G Welke van de volgende grafen hebben een Hamilton-circuit? Geef zo’n circuit
of leg uit waarom zo’n circuit niet kan bestaan.
a
b
d
e
g
h
c
a
b
c
f
d
e
f
i
g
h
i
Oplossing:
Bij de eerste graaf is er wel een Hamilton-circuit mogelijk, bijvoorbeeld
a → b → c → i → f → e → h → g → d → a:
a
b
c
d
e
f
g
h
i
Bij de tweede graaf is het niet mogelijk om een Hamilton-circuit te maken. Zoals we al bij
opgave 4.F hebben gezien, moeten we over elke lijn die aan een punt van graad 2 ligt. We
moeten dus over alle horizontale lijnen in het midden. Als we bij een punt links beginnen,
gaan we dus eerst naar rechts, dan weer naar links, dan weer naar rechts, maar dan kunnen we
helaas niet meer terug terwijl dat wel zou moeten voor een Hamilton-circuit. Een Hamiltonpad is natuurlijk wel mogelijk: a → b → c → f → e → d → g → h → i.
Opgave 4.H Zij G de kubus-graaf, met als P de verzameling van de acht hoekpunten, en
als L de verzameling van de twaalf ribben.
(i) Is G planair?
Oplossing: Hieronder zie je twee representaties van de kubus-graaf. Dat de graaf
planair is volgt overduidelijk uit het tweede plaatje.
H
E
G
F
D
A
E
C
B
F
H
G
D
C
A
B
(ii) Heeft G een Hamilton-circuit?
Oplossing: Ja, kijk maar naar A → B → F → E → H → G → C → D → A:
E
F
H
G
D
C
A
B
(iii) Heeft G een Euler-circuit?
Oplossing: Nee, de graaf G heeft geen Euler-circuit want alle punten hebben oneven
graad terwijl de stelling van Euler juist zegt dat alle punten even graad moeten hebben
wil er een Euler-circuit bestaan.
44
Verklaar telkens je antwoord!
Opgave 4.I Laat zien dat de Petersen-graaf een Hamilton-pad heeft, maar geen Hamiltoncykel.
Oplossing: Een Hamilton-pad is bijvoorbeeld ab → cd → ae → bc → de → ac → bd →
ce → ad → be. Omdat er geen lijn is tussen ab en be kan dit pad in elk geval niet tot een
circuit worden uitgebreid.
Dat er in het algemeen geen Hamilton-circuit in de Petersen-graaf zit is moeilijk te bewijzen. Hier geven we een bewijs gebaseerd op lijnkleuringen1 . Dit moet te begrijpen zijn,
maar het hoeft uiteraard niet op een toets of tentamen gereproduceerd te worden. We gaan
de Petersen-graaf in drie kleuren proberen te verdelen. Dat doen we door de lijnen die op
het circuit liggen afwisselend rood en groen te kleuren en de lijnen die niet op het circuit liggen blauw te kleuren. De Petersen-graaf heeft 10 punten en 15 lijnen. Een Hamilton-circuit
heeft dus 10 lijnen. We vinden het een goede lijnkleuring als geen enkel punt twee lijnen met
dezelfde kleuren heeft. Dit betekent dus meteen dat er 5 rode, 5 groene en 5 blauwe lijnen
moeten zijn. Het bewijs dat er geen Hamilton-circuit is, komt er op neer dat we laten zien
dat zo’n lijnkleuring niet bestaat.
We bewijzen het uit het ongerijmde: we nemen aan dat het wel waar is en leiden dan
een tegenspraak af. Stel dat zo’n lijnkleuring wel bestaat. Dan weten we zeker dat er van de
vijf buitenste lijnen (ab, de), (de, bc), (bc, ae), (ae, cd) en (cd, ab) er minimaal twee dezelfde
kleur hebben, om de simpele reden dat je nu eenmaal geen vijf verschillende kleuren hebt.
Verder is het per definitie van de lijnkleuring zo dat twee lijnen die dezelfde kleur hebben,
geen gemeenschappelijk punt hebben. Zeg dat (de, bc) en (ae, cd) allebei rood zijn. Door de
graaf te draaien, kun je inzien dat het niet uitmaakt welke twee lijnen je rood kiest. Verder
kun je ook nagaan dat het niet uitmaakt welke kleur je kiest. Deze twee rode lijnen betekenen
dat de lijn (bc, ae) automatisch een andere kleur heeft. Zeg groen. Maar dat betekent dan
ook meteen dat de twee lijnen (bc, ad) en (ae, bd) blauw moeten zijn.
ab
ce
de
ac
cd
be
ad
bd
bc
ae
Kijken we nu verder in de buitenste lijnen dan zien we dat ofwel de lijn (ab, de) groen en de
lijn (cd, ab) blauw moet zijn ofwel net andersom. In elk geval betekent dat dat de lijn (ab, ce)
rood moet zijn. De andere twee kleuren zijn uit punt ab immers al gebruikt.
1
Merk op dat lijnkleuringen echt andere dingen zijn dan de puntkleuringen die wel uitgebreid aan bod
komen in het dictaat.
45
ab
ce
de
ac
cd
be
ad
bd
bc
ae
Maar dan hebben we een probleem. De lijn (ce, ad) moet groen zijn omdat hij tussen een
rode en een blauwe lijn inzit. Maar net zo moet de lijn (ce, bd) groen zijn. En dan komen er
dus twee groene en een rode lijn samen in het punt ce.
ab
ce
de
ac
cd
be
ad
bd
bc
ae
En dat mocht niet bij een goede lijnkleuring. Dus bestaat zo’n lijnkleuring niet. En dus zit
er ook geen Hamilton-circuit in de Petersen-graaf.
Opgave 4.J Bepaal het kleurgetal van de volgende grafen. Verklaar je antwoord.
Oplossing: De standaardtechniek om te laten zien dat een (eindige) graaf een bepaald
kleurgetal heeft, is om zo’n kleuring te geven. En vervolgens dient dan te worden uitgelegd
waarom het niet met minder kleuren kan.
46
Het is duidelijk dat de linkergraaf niet met ´e´en kleur gekleurd kan worden, dus het kleurgetal
is 2. Bij de rechtergraaf kunnen we in het midden de K4 zien zitten. Maar in de K4 zijn alle
punten buren van elkaar en dus zijn daar vier kleuren voor nodig. En dus is het kleurgetal
van de hele graaf ook 4.
Opgave 4.K Laat zien dat als een bipartite graaf een Hamilton-pad toelaat het aantal rode
en het aantal blauwe punten hoogstens ´e´en verschilt.
Oplossing: Een bipartite graaf kun je altijd opdelen in een aantal rode punten en een
aantal blauwe punten waarbij alle lijnen telkens een rood en een blauw punt met elkaar
verbinden. Een Hamilton-pad doet alle punten precies ´e´en keer aan. In een bipartite graaf
betekent dat dat zo’n Hamilton-pad afwisselend een rood en een blauw punt aandoet, want
er zijn immers geen directe verbindingen tussen punten met dezelfde kleur. Begin je met een
rood punt dan eindig je ofwel met een blauw punt ofwel weer met een rood punt. In het
eerste geval heb je precies evenveel rode als blauwe punten. In het tweede geval heb je exact
´e´en rood punt meer dan dat je blauwe punten hebt. Uiteraard werkt het argument hetzelfde
als je begonnen was met een blauw punt.
Opgave 4.L Op de Volksuniversiteit worden er heel wat vreemde talen aangeboden: Arabisch, Bulgaars, Chinees, Deens, Egyptisch, Fries en Grieks. Bij het maken van het rooster
voor de cursussen, moet de roostermaker met twee zaken rekeninghouden:
• Het gebouw met tien lokalen kan alleen in zijn geheel gehuurd worden, dus hoe meer cursussen er parallel gegeven kunnen worden, hoe goedkoper het voor de Volksuniversiteit
is.
• Sommige studenten hebben zich voor verschillende cursussen ingeschreven en die betreffende talen mogen dus niet tegelijk gegeven worden. In onderstaande tabel betekent
een ∗ op een bepaalde positie, dat de taal uit die rij niet mag samen vallen met de taal
uit die kolom.
A
A
B
C
D
E
F
G
*
*
*
B
*
*
*
*
C
*
*
D
*
*
*
*
*
*
E
F
*
*
*
*
*
*
*
47
G
*
*
Hoeveel verschillende lesblokken zal de roostermaker gebruiken om aan beide eisen te voldoen?
Oplossing: Het minimale aantal verschillende lesblokken komt overeen met het kleurgetal
van de graaf waarbij de punten de talen weergeven en de lijnen aangeven welke talen er niet
tegelijk mogen worden gegeven. Met andere woorden, de lijnen geven aan waar studenten
beide vakken volgen.
We beginnen bij taal A en lopen door de tabel heen om alle lijnen te bepalen en zodra we
weten dat we zeker een nieuwe kleur nodig hebben wijzen we zo’n kleur toe aan een taal. Op
grond van symmetrie hoeven we alleen de helft rechtsboven te bekijken. Deze methode zorgt
ervoor dat we een minimale kleuring krijgen.
• Taal A moet een kleur hebben: zwart.
• A en B mogen niet samenvallen, dus B moet een andere kleur hebben: rood.
• A en C mogen niet samenvallen, dus C is niet zwart, maar kan misschien nog wel rood
zijn.
• A en D mogen niet samenvallen, dus D is niet zwart, maar kan misschien nog wel rood
zijn.
• A en G mogen niet samenvallen, dus G is niet zwart, maar kan misschien nog wel rood
zijn.
• B en C mogen niet samenvallen, dus C is niet zwart en niet rood, dus C moet een nieuwe
kleur hebben: groen.
• B en D mogen niet samenvallen, dus D is niet zwart en niet rood, maar kan misschien
nog wel groen zijn.
• B en E mogen niet samenvallen, dus E is niet rood, maar kan misschien nog wel zwart
of groen zijn.
• B en G mogen niet samenvallen, dus G is niet zwart en niet rood, maar kan misschien
nog wel groen zijn.
• C en D mogen niet samenvallen, dus D is niet zwart, niet rood en niet groen, dus D
moet een nieuwe kleur krijgen: blauw.
• C en F mogen niet samenvallen, dus F is niet groen, maar kan misschien nog wel zwart,
rood of blauw zijn.
• D en F mogen niet samenvallen, dus F is niet groen en niet blauw, maar kan misschien
nog wel zwart of rood zijn.
• Omdat E alleen maar niet mag samenvallen met B, weten we dat E zwart, groen of
blauw mag zijn. We kiezen zwart.
• F en G mogen niet samenvallen, dus G is niet zwart, niet rood en heeft ook niet dezelfde
kleur als F.
• Er zijn verder geen beperkingen meer, dus hebben we nog wat vrijheid om de kleuren
van F en G te kiezen. Zeg F wordt zwart en G groen.
48
Uiteindelijk is de graaf dus met vier kleuren gekleurd: zwart voor Arabisch, Egyptisch en
Fries, rood voor Bulgaars, groen voor Chinees en Grieks en blauw voor Deens.
G
F
E
A
D
B
C
De roostermaker heeft dus vier verschillende lesblokken nodig, want elke kleur representeert
de lessen die tegelijk gegeven mogen worden.
Opgave 4.M Definieer met recursie de rij an door:
a0 = 3
an+1 = a2n − 2an voor n ≥ 0
Geef de waarde van a5 .
Oplossing:
a1 = a20 − 2a0 = 32 − 2 · 3 = 3
a2 = a21 − 2a1 = 32 − 2 · 3 = 3
a3 = a22 − 2a2 = 32 − 2 · 3 = 3
a4 = a23 − 2a3 = 32 − 2 · 3 = 3
a5 = a24 − 2a4 = 32 − 2 · 3 = 3
Opgave 4.N Definieer met recursie de rij bn door:
b0 = 4
bn+1 = b2n − 2bn voor n ≥ 0
Geef de waarde van b5 .
Oplossing:
b1 = b20 − 2b0 =
42 − 2 · 4
=
16 − 8
=
8
2
b2 = b1 − 2b1 =
82 − 2 · 8
=
64 − 16
=
48
b3 = b22 − 2b2 =
482 − 2 · 48
=
2304 − 96
=
2208
2
b4 = b3 − 2b3 =
22082 − 2 · 2208
=
4875264 − 4416
=
4870848
b5 = b24 − 2b4 = 48708482 − 2 · 4870848 = 23725160239104 − 9741696 = 23725150497408
Opgave 4.O Bekijk de rij cn gedefinieerd door:
1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, 2207, 3571, 5778, 9349, . . .
Geef een recursieve formule voor cn .
49
Oplossing: Vanaf het derde getal is het telkens zo dat de twee voorgaande getallen bij
elkaar opgeteld het nieuwe getal geven. Er moeten dus twee startwaarden gegeven worden en
daarna kan de recursie gebruikt worden.
c0 = 1
c1 = 3
cn+2 = cn+1 + cn voor n ≥ 0
Opgave 4.P De Maple-programma’s uit voorbeeld 4.23 zijn niet erg robuust. Indien er voor
m een niet natuurlijk getal of 0 wordt gebruikt, zal Maple in een oneindige lus terechtkomen.
Probeer de programma’s zo aan te passen dat er een juiste uitkomst wordt bepaald indien
n, m ∈ Z.
Oplossing: Als het goed is kun je volgen wat onderstaande programma’s doen. Wat
betreft syntax kan het in Maple overigens wel korter worden opgeschreven, maar dat was hier
niet het doel.
powZ := proc ( n ,m)
multZ := proc ( n ,m)
i f m=0
i f m=0
then 1
then 0
else
else
i f m<0
i f m<0
then 1/powZ ( n,−m)
then −multZ ( n,−m)
else
else
i f m=1
i f m=1
then n
then n
e l s e multZ ( powZ ( n ,m−1) ,n )
e l s e multZ ( n ,m−1)+n
end i f
end i f
end i f
end i f
end i f
end i f
end proc ;
end proc ;
Opgave 4.Q De uitvinder van het schaakbord mocht van de koning van Perzi¨e een beloning
uitzoeken. Hij mocht vragen wat hij maar wilde. Hij koos voor de volgende beloning. Hij
wilde op het eerste vakje van het schaakbord 1 rijstkorrel hebben, op de tweede 2, op de derde
4, etc. Dus op ieder vakje twee keer zoveel rijstkorrels. De koning vond hem erg bescheiden.
Laten we eens kijken hoeveel hij vroeg: hij wilde dus
1 + 2 + 22 + 23 + 24 + · · · + 263
korrels hebben. Kun je een eenvoudige formule vinden voor de uitkomst van deze som?
[Hint: tel eerst eens wat termen uit het begin van de rij 1, 2, 22 , 23 , 24 , . . . op en bekijk het
verband, dus bekijk 1 en 1 + 2 en 1 + 2 + 22 enz. Herken je iets? Wat is je vermoeden van de
uitkomst? Kun je dit met inductie bewijzen?]
Oplossing: Definieer de rij sn recursief als volgt
s1 = 1
sn = sn−1 + 2n−1 voor n ≥ 2
In het bijzonder betekent dit dus dat sn het totale aantal korrels geeft op de eerste n velden
samen. Dus uiteindelijk willen we straks s64 weten. Hopelijk krijg je na wat proberen het
vermoeden dat sn = 2n − 1. Dat proberen we te bewijzen met inductie.
50
Inductie Hypothese (IH): Definieer P (n) als sn = 2n − 1.
Basisstap n = 1: P (1) geldt want s1 = 1 = 21 − 1.
Inductiestap: Neem aan dat P (n) geldt. We moeten laten zien dat dan ook P (n + 1) geldt.
sn+1 = sn + 2n (definitie sn+1 )
= (2n − 1) + 2n (gebruik IH)
= 2 · 2n − 1 (elementair rekenwerk)
= 2n+1 − 1 (elementair rekenwerk)
Dus als P (n), dan ook P (n + 1).
Met inductie zien we nu dus dat voor alle n ∈ N, n ≥ 1 P (n) geldt, dus voor al die n geldt
sn = 2n − 1. Om te weten hoeveel er gevraagd werd door die uitvinder hoeven we nu alleen
nog maar s64 uit te rekenen: s64 = 264 − 1 = 18446744073709551615.
Opgave 4.R Gegeven is een rij an gedefinieerd door
a0
= 0
an+1 = an + 2n + 1 voor n ≥ 0
Bewijs dat voor elke n ∈ N geldt: an = n2 .
Oplossing: We beginnen weer met het expliciet opschrijven van ons predikaat P (n).
IH: Definieer P (n) als: an = n2 .
Basisstap n = 0: P (0) geldt want a0 = 0 en 02 = 0.
Inductiestap: We nemen aan dat P (n) geldt. Dus an = n2 . Nu willen we laten zien dat
P (n + 1) ook geldt. We moeten dus laten zien dat
an+1 = (n + 1)2
Zoals gebruikelijk beginnen we de linkerkant van deze vergelijking te herschrijven om
uiteindelijk op de rechterkant uit te komen.
an+1 = an + 2n + 1 (definitie an+1 )
= n2 + 2n + 1 (IH)
= (n + 1)2 (rekenregels)
En dat was precies wat we moesten laten zien.
Dus geldt an = n2 inderdaad voor alle n ∈ N.
Opgave 4.S In opgave 4.C heb je bewezen dat voor elke n ≥ 1 geldt dat de graaf Kn precies
1
2 n(n − 1) lijnen heeft. Bewijs dat nu nog eens, maar dan met inductie naar n.
Oplossing: Het bewijs volgt het gebruikelijke patroon.
IH: Definieer P (n) als: Kn heeft precies 12 n(n − 1) lijnen.
51
Basisstap n = 1: P (1) geldt want de K1 bestaat uit ´e´en punt en nul lijnen. En natuurlijk
geldt ook 12 · 1 · (1 − 1) = 0.
Inductiestap: Neem aan dat P (n) geldt. Dan willen we laten zien dat P (n + 1) ook geldt.
We moeten dus laten zien dat de Kn+1 precies 21 (n + 1)n lijnen heeft. We doen dit door
Kn+1 op te bouwen uit Kn . Het is niet zo moeilijk in te zien dat de Kn+1 is opgebouwd
uit Kn en ´e´en extra punt, waarbij er vanuit dat extra punt precies ´e´en lijn loopt naar
elk punt van Kn . Met de IH weten we dat Kn precies 12 n(n − 1) lijnen heeft. Maar dan
is het aantal lijnen van Kn+1 gelijk aan:
1
n + n(n − 1) =
2
=
=
=
=
=
=
2
1
n + n(n − 1) (noemers gelijkmaken)
2
2
2n n(n − 1)
+
(breuken vermenigvuldigen)
2
2
2n + n(n − 1)
(breuken optellen)
2
2n + n2 − n
(haakjes uitwerken)
2
n2 + n
(vereenvoudigen)
2
(n + 1)n
(buiten haakjes halen)
2
1
(n + 1)n (herschrijven)
2
En dat was precies wat we moesten bewijzen.
Dus voor alle n ≥ 1 geldt P (n).
Opgave 4.T Bewijs met inductie dat voor alle n ∈ N, 2n ≥ n.
Oplossing: We gaan met inductie bewijzen dat voor alle n ∈ N 2n ≥ n.
IH: Definieer P (n) als: 2n ≥ n.
Basisstap n = 0: P (0) geldt want 20 = 1 ≥ 0.
Inductiestap: Neem aan dat P (n) geldt. Dan willen we laten zien dat P (n + 1) ook klopt:
P (n)
2n+1 = 2 · 2n ≥ 2 · n
Dus nu is de vraag of 2n ≥ n + 1? Dat geldt niet voor alle n ∈ N. Het geldt alleen
voor n ≥ 1. Dus uit P (1) kunnen we inderdaad P (2) bewijzen en uit P (2) weer P (3)
en verder. Maar uit P (0) kunnen we dus op deze manier nog niet bewijzen dat P (1)
geldt! Dus onze basisstap schiet te kort. Gelukkig kunnen we dat oplossen door een
extra basisstap toe te voegen:
Basisstap n = 1: P (1) geldt want 21 = 2 ≥ 1.
We hebben nu P (0) en P (1) apart bewezen en vervolgens met inductie P (n) voor n ≥ 2.
Maar dan hebben we dus voor alle n ∈ N bewezen dat 2n ≥ n.
52
Opgave 4.U We hebben al een mooie formule voor de som van de rij
1 + 2 + 3 + 4 + 5 + ··· + n =
(n + 1)n
.
2
Wat is het verband met het volgende plaatje?
•
•
•
•
•
◦
•
•
•
•
◦
◦
•
•
•
◦
◦
◦
•
•
◦
◦
◦
◦
•
◦
◦
◦
◦
◦
Oplossing: Denk aan oppervlakten. Wat is de formule voor de oppervlakte van een
rechthoek? Wat is hier de breedte en wat is hier de lengte? En waarom moet je het door
twee delen?
Opgave 4.V Hoeveel rijtjes kunnen we maken van lengte n met daarin alleen de getallen 1
tot en met 5? Dit kunnen we ook weer recursief oplossen. Noem het aantal rijtjes van lengte
n an . Een rijtje van lengte 1 kunnen we op vijf manieren maken, dus a1 = 5. Een rijtje van
lengte n + 1 kunnen we maken door eerst een rijtje van lengte n te maken en daar een element
achter te zetten. Dus an+1 := 5 · an . Herinner je nu even de definitie van machtsverheffen.
Bewijs met inductie dat voor alle n ≥ 1, an = 5n .
Oplossing: Voor alle duidelijkheid: het gaat hier om rijtjes waar de getallen 1 tot en met
5 best dubbel in mogen voorkomen. Dat kun je bijvoorbeeld al afleiden uit het feit dat er ook
een rijtje van lengte 6 gemaakt moet kunnen worden.
IH: Definieer P (n) als an = 5n .
Basisstap n = 1: a1 = 5 = 51 dus P (1) klopt.
Inductiestap: Neem aan dat P (n) geldt. We moeten nu bewijzen dat ook P (n + 1) geldt.
P (n)
an+1 = 5 · an = 5 · 5n = 5n+1
Dus inderdaad kunnen we P (n + 1) afleiden uit P (n).
Dus voor alle n ∈ N, n ≥ 1 geldt an = 5n .
Merk op dat we nu alleen maar naar rijtjes van lengte 1 of meer hebben gekeken. Als je
echter ook alle mogelijke rijtjes van lengte 0 meeneemt, blijkt het ook te kloppen. Het enige
dat verandert in dit bewijs is dat de basis bij n = 0 zit. Controleer zelf dat het voor n = 0
inderdaad ook geldt. (Of met andere woorden: bedenk hoeveel verschillende rijtjes van lengte
0 bestaan.)
Opgave 4.W Bewijs met inductie dat 1 + 3 + 5 + 7 + · · · + (2n − 1) = n2 . Wat is het verband
met het volgende plaatje?
◦ • ◦ • ◦
• • ◦ • ◦
◦ ◦ ◦ • ◦
• • • • ◦
◦ ◦ ◦ ◦ ◦
53
Oplossing: Definieer de rij sn recursief als volgt
s1 = 1
sn = sn−1 + 2n − 1 voor n ≥ 2
Dus sn = 1 + 3 + . . . + (2n − 1). We moeten met inductie bewijzen dat sn = n2 .
IH: Definieer P (n) als sn = n2 .
Basisstap n = 1: s1 = 1 = 12 , dus P (1) geldt.
Inductiestap: Uit P (n) gaan we P (n + 1) bewijzen.
P (n)
sn+1 = sn + 2(n + 1) − 1 = n2 + 2(n + 1) − 1 = n2 + 2n + 2 − 1 = n2 + 2n + 1 = (n + 1)2
En dus kunnen we P (n + 1) inderdaad bewijzen als P (n) geldt.
En dus weten we nu dat voor n ∈ N, n ≥ 1 1 + 3 + . . . + (2n − 1) = n2 . (Merk op dat het bij
deze opgave geen zin heeft om over n = 0 te praten.)
In het plaatje zou je weer de link met oppervlakten moeten kunnen zien.
Opgave 4.X Bewijs dat er in de 2e 4vP aan de rand allemaal eentjes staan.
Oplossing: De punten op de rand
ordinaten (n, 0) ofwel (n, n). Per
hebben ofwel nco¨
n
definitie van 2e 4vP staat er dus 0 respectievelijk n . En die zijn beide per definitie 1
voor elke n.
Opgave 4.Y Laat zien dat ook de 4e 4vP gelijk is aan de 1e 4vP.
Oplossing:
Voordat we dit formeel gaan bewijzen met inductie, eerst informeel het
achterliggende idee. In de 4e 4vP staat op co¨ordinaat (n, k) de co¨effici¨ent van xk in de
veelterm (1 + x)n . Wat we nu straks formeel willen bewijzen is dat de term in 4e 4vP op
positie (n+1, k) kan worden verkregen door de getallen op posities (n, k−1) en (n, k) bij elkaar
op te tellen, precies zoals in de 1e 4vP. Dat kunnen we doen door de veelterm (1 + x)n+1
te ontbinden tot (1 + x)(1 + x)n wat natuurlijk weer gelijk is aan (1 + x)n + x(1 + xn ). Hoe
kun je nu de co¨effici¨ent van xk bepalen in deze veelterm? Nou, die krijg je natuurlijk door de
co¨efficient van xk in de veelterm van (1 + x)n te nemen en die op te tellen bij de co¨effici¨ent
van xk in de veelterm x(1 + x)n . Maar die laatste is natuurlijk precies de co¨effici¨ent van xk−1
in de veelterm (1 + x)n . En daarmee hebben we precies de getallen gevonden die volgens de
4e 4vP op de posities (n, k) en (n, k − 1) staan.
Nu het formele bewijs. We laten zien dat alle co¨effici¨enten in de n-e rij van 1e 4vP gelijk
zijn aan die in de n-e rij van 4e 4vP. Door vervolgens inductie op n toe te passen, kunnen
we dus uiteindelijk voor elke rij bewijzen dat de entries hetzelfde zijn. Voordat we het bewijs
uitschrijven introduceren we eerst een afkorting voor de co¨effici¨ent van xk in een veelterm
f (x):
[f (x)]|k
Twee prettige eigenschappen van deze operatie zijn:
[f (x) + g(x)]|k = [f (x)]|k + [g(x)]|k
[x · f (x)]|k = [f (x)]|k−1 als k > 0
54
(1)
(2)
Beredeneer zelf dat (1) geldt. Hier bewijzen we (2) Neem aan dat deg(f (x)) = p.
[x · f (x)]|k
h i
= x [f (x)]|0 + [f (x)]|1 x + · · · + [f (x)]|k−1 xk−1 + · · · + [f (x)]|p xp
|k
h
i
2
k
p+1
= [f (x)]|0 x + [f (x)]|1 x + · · · + [f (x)]|k−1 x + · · · + [f (x)]|p x
|k
= [f (x)]|k−1
Defineer nu de bewering P (n) alsvolgt:
P (n) := ∀k ∈ {0, . . . , n}[4e 4vP(n,k) = 1e 4vP(n,k) ]
De stelling die we nu moeten bewijzen is: P (n) geldt voor alle n ∈ N. Zoals gezegd gaat het
bewijs met inductie naar n.
Basisstap n = 0: We moeten dus bewijzen dat voor alle k ∈ {0} geldt dat 4e 4vP(0,k) =
1e 4vP(0,k) , dus alleen maar voor k = 0. Bewijs:
4e 4vP(0,0) =
(1 + x)0
|0
= [1]|0
= x0 |0
= 1
= 1e 4vP(0,0)
Dus voor n = 0 geldt P (n).
Inductiestap: Uit P (n) gaan we P (n + 1) bewijzen. We moeten nu dus laten zien dat voor
alle k ∈ {0, . . . , n + 1} geldt dat
4e 4vP(n+1,k) = 1e 4vP(n+1,k)
We maken een gevalsonderscheiding voor k.
• k = 0. Bewijs:
(1 + x)n+1 |0
n+1
=
[1 + x]|0
4e 4vP(n+1,0) =
= 1n+1
= 1
= 1e 4vP(n+1,0)
En dus geldt (3) voor k = 0.
55
(3)
• 0 < k < n + 1. Bewijs:
4e 4vP(n+1,k) =
(1 + x)n+1
(4)
|k
n
= [(1 + x)(1 + x) ]|k
n
(5)
n
= [(1 + x) + x(1 + x) ]|k
n
n
= [(1 + x) ]|k + [x(1 + x) ]|k
n
n
(6)
(7)
= [(1 + x) ]|k + [(1 + x) ]|k−1
(8)
= 4e 4vP(n,k) + 4e 4vP(n,k−1)
(9)
= 1e 4vP(n,k) + 1e 4vP(n,k−1)
(10)
= 1e 4vP(n+1,k)
(11)
Merk op dat (4) niets anders is dan de definitie van 4e 4vP. Verder zijn (5) en (6)
het resultaat van een eenvoudige berekening. En (7) volgt uit (6) en eigenschap
(1). Verder volgt (8) uit (7) en eigenschap (2). En (9) is niets anders dan twee keer
de definitie van 4e 4vP toepassen. Pas in (10) passen we de inductiehypothese
toe, maar dan wel meteen twee keer. En tot slot is (11) een toepassing van de
definitie van 1e 4vP. Alles bij elkaar hebben we nu bewezen dat (3) geldt voor
0 < k < n + 1.
• k = n + 1. Bewijs:
(1 + x)n+1 |n+1
n+1
=
[1 + x]|1
4e 4vP(n+1,n+1) =
= 1n+1
= 1
= 1e 4vP(n+1,n+1)
En dus geldt (3) voor k = n + 1.
En dus geldt (3) voor alle k ∈ {0, . . . , n + 1}. Maar dan geldt dus dat P (n + 1) geldt.
Merk overigens op dat je voor de gevallen k = 0 en k = n + 1 helemaal geen inductie
gebruikt!
En dus is nu voor alle n ∈ N bewezen dat P (n) geldt.
Opgave 4.Z Laat zien hoe je in de driehoek van Pascal kunt vinden hoeveel manieren er
zijn om vier objecten uit een collectie van zes objecten te kiezen. Wat is de notatie voor de
bijbehorende binomiaalco¨effici¨ent?
Oplossing: Voor de n-e rij uit de driehoek van Pascal geldt dat het m-e getal aangeeft op
hoeveel manier je m − 1 objecten uit een collectie van n − 1 objecten kunt pakken. Bedenk
dat de eerste 1 telkens betekent dat je op precies ´e´en manier ‘niets’ kunt pakken uit een serie
objecten. Dat klinkt misschien gek, maar probeer het maar als volgt te begrijpen. Stel dat
je op twee manieren ‘niets’ kunt pakken. Dan moet je verschil kunnen aangeven tussen die
twee resultaten. Maar omdat je niets gepakt hebt is er geen verschil te zien. En dus was het
eigenlijk dezelfde manier.
56
Hier moet je dus het vijfde getal uit de zevende rij pakken:
1
1
1
1
1
1
1
1
3
4
5
6
7
1
3
6
10
15
21
1
2
1
4
10
20
35
1
5
15
35
1
6
21
1
7
1
De bijbehorende binomiaalco¨effici¨ent is 64 .
Let wel: de 0-e rij uit zo’n driehoek bestaat niet. Je kunt het wel hebben over een rij
met naam 0, maar de eerste rij die je tegenkomt is per definitie de eerste rij en niet de nulde
rij! Op dezelfde manier kun je niet spreken over het nulde element. Vandaar dat je hier het
vijfde element uit de zevende rij pakt, daar waar je misschien het vierde element uit de zesde
rij had verwacht.
57
5
Modale logica
Opgave 5.A De formule ♦R betekent dus hetzelfde als ¬¬R. Vind een formule zonder
het symbool ‘’ die hetzelfde betekent als R. Vertaal zowel R als de formule die je hebt
gevonden in een Nederlandse zin.
Oplossing: R ≡ ¬♦¬R. R betekent ‘Het is noodzakelijk dat het regent’. ¬♦¬R
betekent ‘Het is niet mogelijk dat het niet regent’.
Opgave 5.B Nu wordt ‘U is noodzakelijk’ symbolisch opgeschreven als U , en ‘U is onmogelijk’ als ¬U of ¬♦U . Geef twee verschillende formules van de modale logica die ‘U is
contingent’ uitdrukken.
Oplossing: ¬U ∧ ♦U en ♦U ∧ ♦¬U .
Opgave 5.C Gebruik het woordenboek:
G
K
ik heb geld
ik koop iets
en vertaal de volgende Nederlandse zinnen naar formules van de modale logica:
(i) Het is mogelijk dat ik iets koop zonder dat ik geld heb.
Oplossing: ♦(K ∧ ¬G). De oorspronkelijke zin lijkt onmogelijk (als we kopen op afbetaling buiten beschouwing laten). Een alternatieve vertaling is (♦K) ∧ ¬G. Die is ook
onmogelijk.
(ii) Het is noodzakelijk dat als ik iets koop dat ik dan ook geld heb.
Oplossing: (K → G). Dit lijkt een noodzakelijk ware zin.
(iii) Het is mogelijk dat als ik iets koop dat ik dan geen geld heb.
Oplossing: Hier is het erg afhankelijk van hoe je de zin interpreteert. Doe je dat
als ♦(K → ¬G), dan is het een noodzakelijk ware bewering. Immers K → ¬G is
bijvoorbeeld waar als je niets koopt, ongeacht of je geld hebt of niet. Dus ♦(K → ¬G)
is dan noodzakelijk waar. Als je echter de alternatieve interpretatie ♦(K ∧ ¬G) neemt,
dan hebben we hierboven al gezien dat die onmogelijk waar is.
Welke van deze zinnen lijken je waar? Leg uit waarom.
Opgave 5.D Geef bij de volgende formules van de modale logica de vorm die aan de offici¨ele
grammatica voldoet, en teken de bijbehorende bomen.
(i) (a)
Oplossing: a;
a
(ii) a → a
Oplossing: (a → a);
→
}
a
a
58
(iii) (a) → a
Oplossing: (a → a);
→
}
a
a
(iv) (a → a)
Oplossing: (a → a);
→
a
}
!
(v) ¬a → ¬a
Oplossing: (¬a → ¬a);
a
→
¬
}
"
¬
a
a
(vi) ♦a → ♦a
Oplossing: (♦a → ♦a);
→
♦
!
~
a
♦
a
(vii) a → ♦a
Oplossing: (a → ♦a);
→
}
♦
a
a
(viii) ♦a ∧ b → ♦a ∨ ¬c
Oplossing: ((♦a ∧ b) → (♦a ∨ ¬c));
→
∧
♦
a

w
(
b
♦
a
Opgave 5.E Gebruik het volgende woordenboek:
59

∨
¬
c
K
H
ik ben klaar
ik ga naar huis
Vertaal voor ieder van de logica’s uit de tabel (behalve voor de programma-logica) de formule
¬K → ¬♦H
naar het Nederlands.
Oplossing:
(i) Modaal: Als ik niet klaar ben dan is het niet mogelijk dat ik naar huis ga.
(ii) Epistemisch: Als ik niet klaar ben dan is het strijdig met mijn kennis dat ik naar huis
ga.
(iii) Doxastisch: Als ik niet klaar ben dan is het strijdig met mijn geloof dat ik naar huis ga.
(iv) Temporeel: Als ik niet klaar ben dan niet soms ga ik naar huis. Als ik niet klaar ben
dan ga ik nooit naar huis.
(v) Deontisch: Als ik niet klaar ben dan niet mag ik naar huis gaan. Als ik niet klaar ben
dan mag ik niet naar huis gaan.
Opgave 5.F Maak een tabel van modale logica’s en axiomaschema’s, waarin je aangeeft
in welke logica’s welke schema’s gelden. Zet de logica’s uit de lijst op pagina 65 langs de
linkerkant van de tabel en de axiomaschema’s aan de bovenkant. Zet nu een ‘+’ in de tabel
wanneer je denkt dat het schema in de logica geldt, en een ‘−’ wanneer je denkt dat dat niet
altijd zo hoeft te zijn. Zo maak je dus een tabel met 36 plussen en minnen.
Oplossing:
Modaal
Epistemisch
Doxastisch
Temporeel
Deontisch
Programma
distr.
K
+1
+7
+13
+19
+25
+31
refl.
T
+2
+8
-14
+20
-26
-32
sym.
B
+3
+9
+15
-21
-27
-33
trans.
4
+4
+10
+16
+22
-/+28
-34
Eucl.
5
+5
-/+11
-/+17
-23
-/+29
-35
ser.
D
+6
+12
-18
+24
-/+30
+36
Hieronder de uitleg waarom er een ‘+’ of een ‘-’ staat. In het bijzonder is hier discussie
over mogelijk, dus als je het ergens duidelijk niet mee eens bent, geef dan door wat er mis is
met onze redenering. In het bijzonder heeft het geen zin om deze redeneringen uit het hoofd
te leren! Op een toets of tentamen moet je zelf een argument kunnen geven waarom een
bepaalde eigenschap wel of niet geldt.
1. (Modaal) Als g noodzakelijk uit f volgt en f is noodzakelijk, dan is g zelf ook noodzakelijk.
2. Als f noodzakelijk is, dan is f waar.
3. Als f waar is, dan is de mogelijkheid dat f waar is noodzakelijk.
4. Als f noodzakelijk is, dan is f ook noodzakelijk op grond van logisch redeneren.
5. Als f mogelijk is, dan is ♦f ook noodzakelijk.
60
6. Elk reflexief systeem is ook serieel.
7. (Epistemisch) Als we weten dat uit f g volgt en we weten dat f waar is dan weten we
ook dat g geldt.
8. Alleen ware feiten f kunnen gekend worden.
9. Als f waar is, dan weet je dat het niet strijdig is met je kennis.
10. Je weet wat je weet.
11. Dit betekent zoiets als: je weet wat je niet weet. Als iets niet strijdig is met wat je weet,
dan weet je dat ook. Niet iedereen vindt dat dit redelijk is.
12. Elk reflexief systeem is ook serieel.
13. (Doxastisch) Als je gelooft dat f g impliceert en je gelooft f dan ligt het voor de hand
ook g te geloven.
14. Niet alles wat je gelooft is waar.
15. Als iets waar is, geloof je dan dat het niet strijdig is met je geloof?
16. Als je iets gelooft, geloof je (vast) ook wel dat je dat gelooft.
17. Als iets niet strijdig is met je geloof, is dat dan een reden om het dan zelf ook maar te
geloven?
18. Mensen kunnen best in strijdige dingen geloven.
19. (Temporeel) Als altijd geldt dat f g impliceert en verder geldt f altijd dan moet g ook
wel altijd gelden.
20. Als f altijd geldt, dan moet het in het bijzonder nu gelden. (Nb. hier gebruiken we de
LTL interpretatie uit sectie 5.6; er zijn ook andere temporele logica’s.)
21. Onder de LTL interpretatie dat nu een onderdeel van de toekomst is, volgt uit het feit
dat f nu waar is automatisch dat het altijd een keer waar is? Nee, neem maar een
eigenschap f die alleen vandaag waar is. Dan geldt voor vandaag ♦f wel. Maar voor
morgen geldt ♦f niet. En dus geldt ♦f niet. (In zekere zin betekent ♦f dat f
oneindig vaak waar is: op elk moment is er een later moment waarop f waar is.)
22. Als iets vanaf nu altijd waar is, dan is het ook altijd waar vanaf elk later moment dan
nu.
23. Als iets ooit waar is, hoeft dat niet te betekenen dat het altijd ooit waar is. Zie het
voorbeeld tegen symmetrie.
24. Als iets altijd waar is, dan is het zeker ooit waar.
25. (Deontisch) Als het zo is dat je g moet doen indien je f doet en je moet f doen, dan
moet je ook g doen.
26. Uit het feit dat je f moet doen volgt niet dat je f ook doet.
61
27. Als je f doet dan volgt daaruit niet dat dat moet mogen.
28. Als je f moet doen, moet je dan ook f moeten?
29. Als je f mag doen, moet dat dan ook mogen?
30. Het klinkt niet onredelijk om aan te nemen dat als je iets moet, je het ook mag. Aan de
andere kant, soms moet je naar de wc terwijl dat van de docent niet mag. Verder is dit
axioma equivalent aan f ∧ ¬f . En het komt best voor dat je tegenstrijdige dingen
moet. Een zogenaamde ‘double bind’. Neem bijvoorbeeld een gebodsbord met daarop
de tekst ‘negeer dit bord’.
31. (Programma) Als na executie geldt dat f g impliceert en na executie geldt f , dan moet
g ook na executie gelden.
32. Het feit dat f geldt na executies betekent niet dat f nu geldt.
33. Het feit dat f nu geldt betekent niet dat na executie het moet zijn dat na executie f
kan gelden.
34. Als f na executie geldt, betekent dat nog niet dat na een tweede executie f weer geldt.
35. Als f na executie kan gelden, betekent dat nog niet dat het na executie moet zijn dat
het na executie kan gelden.
36. Als f na executie moet gelden, dan kan het na executie zeker gelden.
Opgave 5.G Ga van de volgende formules f na in welke werelden x van ons voorbeeld van
een Kripke-model ze waar zijn, ofwel, voor welke x er geldt dat x f . Welke zijn in het hele
model waar, ofwel, voor welke geldt M1 |= f ?
(i) a
Oplossing: Als x ∈ {x1 , x2 , x4 } dan geldt a ∈ V (x) en dus x a. Omdat x 6∈ V (x3 )
geldt x3 6 a. En dus ook M1 6|= a.
(ii) a
Oplossing: R(x1 ) = {x2 } en x2 a, dus x1 a. R(x2 ) = {x1 , x2 }, x1 a en x2 a,
dus x2 a. R(x3 ) = {x1 } en x1 a, dus x3 a. R(x4 ) = ∅ en dus automatisch
x4 a, want er is geen enkele wereld waarvoor er iets gecontroleerd hoeft te worden.
En dus M1 |= a.
(iii) ♦a
Oplossing: R(x1 ) = {x2 } en x2 a, dus x1 ♦a. R(x2 ) = {x1 , x2 } en x1 a, dus
x2 ♦a. R(x3 ) = {x1 } en x1 a, dus x3 ♦a. R(x4 ) = ∅ en dus automatisch x4 6 ♦a,
want ♦a vereist dat er een toegankelijke wereld vanuit x4 is. En dus M1 6|= ♦a.
(iv) a → a
Oplossing: We hebben al gezien dat x1 a, x2 a en x4 a. En dus weten
we ook meteen met de waarheidstabel van → dat x1 a → a, x2 a → a en
x4 a → a. Verder weten we dat x3 a maar x3 6 a. En dus x3 6 a → a. En
dus M1 6|= a → a.
(v) a → a
Oplossing: R(x1 ) = {x2 } en x2 a, dus x1 a. En dus ook x1 a → a.
R(x2 ) = {x1 , x2 }, x1 a en x2 a, dus x2 a. En dus ook x2 a → a.
62
R(x3 ) = {x1 } en x1 a, dus x3 a. En dus ook x3 a → a. R(x4 ) = ∅ en
dus automatisch x4 a. En dus ook x4 a → a. En dus M1 |= a → a.
(vi) a → ♦a
Oplossing: R(x1 ) = {x2 }. We hebben al gezien dat x2 ♦a. Dus x1 ♦a. En
dus ook x1 a → ♦a. R(x2 ) = {x1 , x2 }. We weten al dat x1 ♦a en x2 ♦a.
Dus x2 ♦a. En dus ook x2 a → ♦a. Omdat x3 6 a weten we meteen dat
x3 a → ♦a. R(x4 ) = ∅. En dus meteen x4 ♦a. En dus ook x4 a → ♦a. En
dus M1 |= a → ♦a.
Opgave 5.H (i) Bestaat er een Kripke-model M2 zodat M2 |= a maar M2 6|= a? Als
je antwoord ‘ja’ is: geef een voorbeeld van zo’n model M2 . Als je antwoord ‘nee’ is:
waarom niet?
Oplossing: Nee, zo’n model M2 bestaat niet. Stel dat er wel een model M2 = hW, R, V i
bestaat met M2 |= a en M2 6|= a. Dan bestaat er dus een x ∈ W met x a en
x 6 a. Er zijn dan twee mogelijkheden voor R(x): leeg of niet-leeg. Als R(x) = ∅
geldt automatisch x a en dus hebben we een tegenspraak. Dus R(x) 6= ∅. Maar
voor alle y ∈ R(x) geldt dat y a want R(x) ⊆ W en M2 |= a betekent dat y a voor
alle y ∈ W geldt. Maar dan geldt x a en we hebben weer een tegenspraak. Dus kan
zo’n model niet bestaan.
(ii) Bestaat er een Kripke-model M3 zodat M3 |= a maar M3 6|= ♦a? Als je antwoord ‘ja’
is: geef een voorbeeld van zo’n model M3 . Als je antwoord ‘nee’ is: waarom niet?
Oplossing: Ja. Neem M3 = hW, R, V i met W = {x1 }, R(x1 ) = ∅ en V (x1 ) = {a}. In
een diagram ziet dat er zo uit:
x1
M3 :
a
Omdat x1 a geldt M3 |= a. Maar omdat R(x1 ) = ∅ geldt x1 6 ♦a en dus ook
M3 6|= ♦a.
Opgave 5.I (i) Bestaat er een Kripke-model M4 dat serieel is maar niet reflexief? Als
je antwoord ‘ja’ is: geef een voorbeeld van zo’n model M4 . Als je antwoord ‘nee’ is:
waarom niet?
Oplossing: Laat je bij deze opgave niet foppen: een model is serieel als het voor alle f
aan axioma D voldoet en reflexief als het voor alle f aan axioma T voldoet. Een model
geven dat voor bijvoorbeeld f = a voldoet aan die axioma’s wil dus nog niet zeggen
dat het model inderdaad serieel of reflexief is! In het algemeen is het zelfs vrij lastig te
bewijzen dat een model serieel of reflexief is. Echter, de karakterisering die in sectie 5.5
wordt gegeven is veel handiger:
• Een model is serieel als er uit elke wereld minstens ´e´en pijl vertrekt.
• Een model is reflexief als er vanuit iedere wereld een pijl naar zichzelf is.
Nu terug naar deze opgave. Het antwoord is ja; zo’n model bestaat. Neem M4 =
hW, R, V i met W = {x1 , x2 }, R(x1 ) = {x1 }, R(x2 ) = {x1 }, V (x1 ) = {a} en V (x2 ) = ∅.
In een diagram ziet dat er zo uit:
M4 :
x1
N
63
ao
x2
Omdat R(x1 ) = R(x2 ) = {x1 } gaat er dus vanuit elke wereld minimaal ´e´en pijl en is
M4 dus serieel. Het model is echter niet reflexief: vanuit x2 is er geen pijl naar x2 zelf.
Omdat we hier laten zien dat het model niet reflexief is, kunnen we ook ´e´en specifieke
formule f pakken en laten zien dat M4 6|= f → f . We nemen hiervoor f = a. Omdat
R(x2 ) = {x1 } en a ∈ V (x1 ) geldt x2 a. Echter, omdat a 6∈ V (x2 ) geldt x2 a niet.
En dus geldt x2 6 a → a. En dus geldt M4 6|= a → a. Dus M4 is niet reflexief.
(ii) Bestaat er een Kripke-model M5 dat reflexief is maar niet serieel? Als je antwoord ‘ja’
is: geef een voorbeeld van zo’n model M5 . Als je antwoord ‘nee’ is: waarom niet?
Oplossing: Nee, zo’n model M5 bestaat niet. M5 is reflexief betekent dat x ∈ R(x)
voor alle x ∈ W . Dus is er in elk geval een pijl vanuit x naar zichzelf. In het bijzonder
is er dus minimaal ´e´en pijl vanuit x en dus is M5 serieel. Dus M5 kan niet wel reflexief
en toch niet serieel zijn.
64