03.05.2013 Views

uitwerkingen van de opgaven uit het dictaat

uitwerkingen van de opgaven uit het dictaat

uitwerkingen van de opgaven uit het dictaat

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Inhoudsopgave<br />

Formeel Denken Opgavenbun<strong>de</strong>l<br />

Engelbert Hubbers en Freek Wiedijk<br />

13 <strong>de</strong>cember 2012<br />

1 Propositielogica 2<br />

2 Predikaatlogica 10<br />

3 Talen en automaten 20<br />

4 Discrete wiskun<strong>de</strong> 40<br />

5 Modale logica 57<br />

1


1 Propositielogica<br />

Opgave 1.A Vind zinnen <strong>uit</strong> <strong>de</strong> formele taal die <strong>het</strong>zelf<strong>de</strong> betekenen als <strong>de</strong> volgen<strong>de</strong> zinnen.<br />

(i) Het regent niet, noch schijnt <strong>de</strong> zon.<br />

Oplossing: ¬R ∧ ¬Z: <strong>het</strong> regent niet en <strong>de</strong> zon schijnt niet.<br />

(ii) De zon schijnt, tenzij <strong>het</strong> regent<br />

Oplossing: De betekenis <strong>van</strong> <strong>het</strong> woord ‘tenzij’ is een beetje ondui<strong>de</strong>lijk. Meestal wordt<br />

<strong>het</strong> gelezen als ‘De zon schijnt, behalve als <strong>het</strong> regent’. Vandaar dat er verschillen<strong>de</strong><br />

mogelijkhe<strong>de</strong>n zijn. In <strong>het</strong> bijzon<strong>de</strong>r zijn <strong>de</strong>ze verschillen<strong>de</strong> oplossingen niet logisch<br />

equivalent (zie <strong>de</strong>finitie 1.11).<br />

• R → ¬Z: als <strong>het</strong> regent schijnt <strong>de</strong> zon niet (merk op dat hier niets gezegd wordt<br />

over wanneer <strong>de</strong> zon dan wel schijnt: komt dat overeen met <strong>de</strong> betekenis <strong>van</strong><br />

‘tenzij’?),<br />

• ¬R → Z: als <strong>het</strong> niet regent schijnt <strong>de</strong> zon,<br />

• Z ↔ ¬R: <strong>de</strong> zon schijnt dan en slechts dan als <strong>het</strong> niet regent.<br />

(iii) Of <strong>de</strong> zon schijnt, of <strong>het</strong> regent. (We bedoelen dus niet allebei)<br />

Oplossing: Ook hier zijn er verschillen<strong>de</strong> mogelijkhe<strong>de</strong>n, maar in dit geval zijn <strong>de</strong> formules<br />

wel logisch equivalent. De eerste versie lijkt iets meer op <strong>de</strong> originele vraag dan<br />

<strong>de</strong> twee<strong>de</strong>.<br />

• (Z ∨ R) ∧ ¬(Z ∧ R): <strong>de</strong> zon schijnt of <strong>het</strong> regent, en niet allebei tegelijk,<br />

• (Z ∧ ¬R) ∨ (¬Z ∧ R): <strong>de</strong> zon schijnt en <strong>het</strong> regent niet of <strong>de</strong> zon schijnt niet en<br />

<strong>het</strong> regent wel.<br />

Merk op dat <strong>de</strong> formule Z ↔ ¬R <strong>de</strong>zelf<strong>de</strong> waarheidstabel heeft als <strong>de</strong> hierboven genoem<strong>de</strong><br />

oplossingen. Maar omdat <strong>de</strong> structuur <strong>van</strong> <strong>de</strong>ze formule helemaal niet meer<br />

lijkt op <strong>de</strong> oorspronkelijke zin, vin<strong>de</strong>n we <strong>de</strong>ze formule min<strong>de</strong>r goed als vertaling.<br />

Waarschijnlijk ten overvloe<strong>de</strong> maar simpelweg Z ∨ R is dus fout, want dit sl<strong>uit</strong> <strong>het</strong><br />

‘allebei’ niet <strong>uit</strong>.<br />

(iv) Er is alleen een regenboog als <strong>de</strong> zon schijnt en <strong>het</strong> regent.<br />

Oplossing: Deze oplossing heeft <strong>de</strong> voorkeur: RB → (Z ∧ R): als er een regenboog is,<br />

dan schijnt <strong>de</strong> zon en regent <strong>het</strong>, want alleen als <strong>de</strong> zon schijnt en <strong>het</strong> regent is er een<br />

regenboog.<br />

De volgen<strong>de</strong> optie vin<strong>de</strong>n we niet zo goed, maar nog wel enigszins ver<strong>de</strong>digbaar: RB ↔<br />

(Z ∧ R): er is een regenboog dan en slechts dan als <strong>de</strong> zon schijnt en <strong>het</strong> regent. Hier<br />

wordt <strong>het</strong> woordje ‘alleen’ wel erg sterk geïnterpreteerd: <strong>de</strong> bewering geldt blijkbaar<br />

ook <strong>de</strong> an<strong>de</strong>re kant op.<br />

Ver<strong>de</strong>r is <strong>het</strong> dui<strong>de</strong>lijk dat (Z ∧ R) → RB een te zwakke vertaling is <strong>van</strong> <strong>de</strong> zin. Dit is<br />

namelijk <strong>de</strong> vertaling <strong>van</strong> ‘Er is een regenboog als <strong>de</strong> zon schijnt en <strong>het</strong> regent’ en dus<br />

zou <strong>het</strong> woordje ‘alleen’ niets toevoegen.<br />

(v) Als ik b<strong>uit</strong>en ben, dan word ik nat, mits <strong>het</strong> regent.<br />

Oplossing: Het woordje ‘mits’ kan hier wor<strong>de</strong>n gezien als ‘en als’. Dat levert weer een<br />

aantal logisch equivalente formules. De eerste sl<strong>uit</strong> <strong>het</strong> beste aan bij <strong>de</strong> exacte tekst in<br />

<strong>de</strong> vraag.<br />

• Bui → (R → N): als ik b<strong>uit</strong>en ben en als <strong>het</strong> dan regent dan word ik nat,<br />

• R → (Bui → N): als <strong>het</strong> regent en als ik dan b<strong>uit</strong>en ben dan word ik nat,<br />

2


• (Bui ∧R) → N: als ik b<strong>uit</strong>en ben en <strong>het</strong> regent dan word ik nat.<br />

Het woordje ‘mits’ kan ook wor<strong>de</strong>n gezien als ‘op voorwaar<strong>de</strong> dat’ wat min of meer<br />

<strong>de</strong>zelf<strong>de</strong> betekenis heeft als ‘alleen als’ en dus kun je ook <strong>de</strong>ze formule gebruiken:<br />

• (Bui → N) → R: als ik nat word als ik b<strong>uit</strong>en ben, dan regent <strong>het</strong>.<br />

• Bui → (N → R): als ik b<strong>uit</strong>en ben en als ik dan nat word, dan regent <strong>het</strong>.<br />

Opgave 1.B Kun je f ↔ g ook <strong>uit</strong>drukken met behulp <strong>van</strong> <strong>de</strong> an<strong>de</strong>re symbolen?<br />

Oplossing: De formule f ↔ g is ook te schrijven als (f → g) ∧ (g → f) of als (f ∨ g) →<br />

(f ∧ g). Ook (f ∧ g) ∨ (¬f ∧ ¬g) is logisch equivalent.<br />

Opgave 1.C Vertaal <strong>de</strong> volgen<strong>de</strong> zinnen <strong>uit</strong> <strong>de</strong> formele taal naar <strong>het</strong> Ne<strong>de</strong>rlands:<br />

(i) R ↔ Z<br />

Oplossing: Het regent dan en slechts dan als <strong>de</strong> zon schijnt. (Of iets gebruikelijker in <strong>het</strong><br />

spraakgebruik: Het regent precies als <strong>de</strong> zon schijnt.) Merk op dat bijvoorbeeld <strong>de</strong> zin<br />

‘Als <strong>het</strong> regent dan schijnt <strong>de</strong> zon en als <strong>de</strong> zon schijnt regent <strong>het</strong>’ een prima vertaling<br />

is <strong>van</strong> <strong>de</strong> formule (R → Z) ∧ (Z → R) en die formule is weliswaar equivalent aan <strong>de</strong><br />

formule R ↔ Z, maar toch is die zin geen vertaling <strong>van</strong> <strong>de</strong> oorspronkelijke formule<br />

R ↔ Z.<br />

(ii) RB → (R ∧ Z)<br />

Oplossing: Als er een regenboog is, regent <strong>het</strong> en schijnt <strong>de</strong> zon.<br />

(iii) Bui → ¬ Bin<br />

Oplossing: Als ik b<strong>uit</strong>en ben dan ben ik niet binnen.<br />

(iv) Bui ∨ Bin<br />

Oplossing: Ik ben b<strong>uit</strong>en of ik ben binnen, of allebei.<br />

Opgave 1.D Schrijf <strong>de</strong> waarheidstabellen op <strong>van</strong>:<br />

(i) a ∨ ¬a<br />

Oplossing: Zorg dat je altijd begint met kolommen te maken voor alle atomen. In<br />

on<strong>de</strong>rstaan<strong>de</strong> tabellen zijn die kolommen met atomen nooit herhaald, maar dat mag<br />

natuurlijk wel. Zorg er ver<strong>de</strong>r voor dat je tabellen er verzorgd <strong>uit</strong>zien en leesbaar<br />

zijn. Merk op dat in on<strong>de</strong>rstaan<strong>de</strong> tabellen soms extra haakjes zijn opgenomen om <strong>het</strong><br />

parseren <strong>van</strong> <strong>de</strong> formules makkelijker te maken.<br />

a ¬a a ∨ ¬a<br />

0 1 1<br />

1 0 1<br />

(ii) (a → b) → a<br />

Oplossing:<br />

a b a → b (a → b) → a<br />

0 0 1 0<br />

0 1 1 0<br />

1 0 0 1<br />

1 1 1 1<br />

(iii) a → (b → a)<br />

Oplossing:<br />

3


a b b → a a → (b → a)<br />

0 0 1 1<br />

0 1 0 1<br />

1 0 1 1<br />

1 1 1 1<br />

(iv) a ∧ b → a<br />

Oplossing:<br />

a b (a ∧ b) (a ∧ b) → a<br />

0 0 0 1<br />

0 1 0 1<br />

1 0 0 1<br />

1 1 1 1<br />

(v) a ∧ (b → a)<br />

Oplossing:<br />

a b b → a a ∧ (b → a)<br />

0 0 1 0<br />

0 1 0 0<br />

1 0 1 1<br />

1 1 1 1<br />

(vi) ¬a → ¬b<br />

Oplossing:<br />

a b ¬a ¬b ¬a → ¬b<br />

0 0 1 1 1<br />

0 1 1 0 0<br />

1 0 0 1 1<br />

1 1 0 0 1<br />

Opgave 1.E Welke <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> proposities zijn logisch waar?<br />

Oplossing: Het antwoord wordt gevon<strong>de</strong>n door <strong>de</strong> waarheidstabellen op te schrijven. Staan<br />

er in <strong>de</strong> kolom on<strong>de</strong>r <strong>de</strong> formule alleen 1-en, dan is die formule logisch waar. Zodra er echter<br />

één of meer 0-en staan, is <strong>de</strong> formule niet logisch waar.<br />

Be<strong>de</strong>nk dat <strong>het</strong> <strong>uit</strong>sl<strong>uit</strong>end geven <strong>van</strong> een waarheidstabel normaal gesproken geen<br />

antwoord is op <strong>de</strong> vraag. Koppel altijd wat je in <strong>de</strong> tabel ziet aan wat er gevraagd<br />

wordt!<br />

In <strong>de</strong>ze <strong>uit</strong>werking is dat hierboven globaal gedaan door expliciet te zeggen hoe je ‘logisch<br />

waar of niet’ kunt aflei<strong>de</strong>n <strong>uit</strong> <strong>de</strong> tabel.<br />

(i) a ∨ ¬a<br />

Oplossing: Uit <strong>de</strong> waarheidstabel in opgave 1.D volgt dat a ∨ ¬a logisch waar is.<br />

(ii) a → (a → a)<br />

Oplossing: Logisch waar. Zie <strong>de</strong> laatste kolom <strong>uit</strong> <strong>de</strong>ze tabel:<br />

a a → a a → (a → a)<br />

0 1 1<br />

1 1 1<br />

(iii) a → a<br />

Oplossing: Logisch waar. Zie <strong>de</strong> twee<strong>de</strong> kolom <strong>uit</strong> <strong>de</strong> tabel <strong>van</strong> <strong>het</strong> vorige on<strong>de</strong>r<strong>de</strong>el.<br />

4


(iv) (a → b) → a<br />

Oplossing: Uit <strong>de</strong> 0-en in <strong>de</strong> overeenkomstige waarheidstabel in opgave 1.D blijkt dat<br />

(a → b) → a niet logisch waar is.<br />

(v) a → (b → a)<br />

Oplossing: Uit <strong>de</strong> 1-en in <strong>de</strong> overeenkomstige waarheidstabel in opgave 1.D blijkt dat<br />

a → (b → a) wel logisch waar is.<br />

(vi) a ∧ b → a<br />

Oplossing: Uit <strong>de</strong> 1-en in <strong>de</strong> overeenkomstige waarheidstabel in opgave 1.D blijkt dat<br />

a ∧ b → a wel logisch waar is.<br />

(vii) a ∨ (b → a)<br />

Oplossing: Niet logisch waar. Zie <strong>de</strong> laatste kolom <strong>uit</strong> <strong>de</strong>ze tabel:<br />

a b b → a a ∨ (b → a)<br />

0 0 1 1<br />

0 1 0 0<br />

1 0 1 1<br />

1 1 1 1<br />

(viii) a ∨ b → a<br />

Oplossing: Niet logisch waar. Zie <strong>de</strong> laatste kolom <strong>uit</strong> <strong>de</strong>ze tabel:<br />

a b a ∨ b (a ∨ b) → a<br />

0 0 0 1<br />

0 1 1 0<br />

1 0 1 1<br />

1 1 1 1<br />

Opgave 1.F Laat f en g proposities zijn. Ga na of <strong>de</strong> volgen<strong>de</strong> <strong>uit</strong>spraken kloppen. Verklaar<br />

je antwoor<strong>de</strong>n.<br />

Oplossing: Merk op dat alle <strong>uit</strong>spraken hier <strong>van</strong> <strong>het</strong> type ‘als. . . , dan. . . ’ zijn. Als <strong>de</strong><br />

<strong>uit</strong>spraak klopt moet je een re<strong>de</strong>nering geven die dat on<strong>de</strong>rsteunt. Als <strong>de</strong> <strong>uit</strong>spraak niet klopt<br />

kun je volstaan met een tegenvoorbeeld, maar je mag natuurlijk ook een algemene re<strong>de</strong>nering<br />

geven.<br />

Een bewijs <strong>van</strong> een ‘als. . . , dan. . . ’ bewering komt erop neer dat je mag aannemen wat<br />

er in <strong>het</strong> ‘als’ stuk staat en daar<strong>uit</strong> moet aflei<strong>de</strong>n wat er in <strong>het</strong> ‘dan’ stuk staat.<br />

Bij een tegenvoorbeeld moet je concrete formules f en g kiezen, waarbij je laat zien dat<br />

<strong>het</strong> ‘als’ stuk wel geldt, maar <strong>het</strong> ‘dan’ stuk niet.<br />

(i) Als |= f en |= g, dan |= f ∧ g.<br />

Oplossing: Klopt.<br />

Neem aan |= f en |= g. Dan geldt voor elk mo<strong>de</strong>l v dat v(f) = 1 en v(g) = 1. Vervolgens<br />

kun je bij zo’n mo<strong>de</strong>l v v(f ∧ g) <strong>uit</strong>rekenen met <strong>de</strong> waarheidstabel <strong>van</strong> ∧. Daar<strong>uit</strong> blijkt<br />

dat dan ook v(f ∧ g) = 1. Dus blijkbaar volgt <strong>uit</strong> <strong>de</strong> aanname dat voor elk mo<strong>de</strong>l v,<br />

v(f ∧ g) = 1. En dus per <strong>de</strong>finitie geldt dan |= f ∧ g. En dus klopt <strong>de</strong> oorspronkelijke<br />

<strong>uit</strong>spraak.<br />

(ii) Als niet |= f, dan |= ¬f.<br />

Oplossing: Klopt niet.<br />

Als we een tegenvoorbeeld willen vin<strong>de</strong>n waarvoor dus wel geldt dat ‘niet |= f’, moeten<br />

we in elk geval een f kiezen waarbij er minimaal een mo<strong>de</strong>l v1 is met v1(f) = 0. Dan<br />

volgt automatisch dat v(¬f) = 1. Maar om zeker te weten dat ‘|= ¬f’ niet geldt, moet<br />

er dus ook een mo<strong>de</strong>l v2 zijn met v2(¬f) = 0. Dat kan alleen maar als v2(f) = 1. Dus<br />

5


kunnen we alleen een tegenvoorbeeld vin<strong>de</strong>n als f dus in sommige mo<strong>de</strong>llen waar is en<br />

in an<strong>de</strong>re mo<strong>de</strong>llen niet waar. Gelukkig zijn daar genoeg mogelijkhe<strong>de</strong>n voor. Neem<br />

maar f = a. Dan geldt ‘niet |= a’ en toch geldt <strong>de</strong> conclusie ‘|= ¬a’ niet. En dus klopt<br />

<strong>de</strong> oorspronkelijke <strong>uit</strong>spraak niet.<br />

(iii) Als |= f of |= g, dan |= f ∨ g.<br />

Oplossing: Klopt.<br />

Neem aan |= f of |= g. Dan hebben we eigenlijk drie gevallen die we moeten bekijken<br />

en waarin we steeds <strong>de</strong>zelf<strong>de</strong> conclusie, namelijk |= f ∨ g moeten aflei<strong>de</strong>n.<br />

(1) |= f geldt. Dus voor elk mo<strong>de</strong>l v geldt v(f) = 1. Maar dan geldt ook voor elk<br />

mo<strong>de</strong>l v dat v(f ∨ g) = 1 omdat alleen <strong>het</strong> ‘waar’ zijn <strong>van</strong> f al garan<strong>de</strong>ert dat <strong>de</strong><br />

samengestel<strong>de</strong> formule f ∨ g ook waar is. Maar dan geldt per <strong>de</strong>finitie |= f ∨ g.<br />

(2) |= g geldt. Dit gaat volkomen analoog aan <strong>het</strong> vorige geval.<br />

(3) |= f geldt en |= g geldt. In <strong>het</strong> bijzon<strong>de</strong>r geldt dus |= f en bij <strong>de</strong> beschrijving<br />

<strong>van</strong> dat geval hebben we nergens gebruikt dat |= g al dan niet geldt, dus <strong>het</strong>zelf<strong>de</strong><br />

bewijs kan nog een keer gegeven wor<strong>de</strong>n.<br />

Dus in alle drie <strong>de</strong> gevallen geldt <strong>de</strong> conclusie. Dus geldt <strong>de</strong> conclusie dan ook on<strong>de</strong>r <strong>de</strong><br />

samengestel<strong>de</strong> aanname ‘|= f of |= g’. En dus klopt <strong>de</strong> oorspronkelijke <strong>uit</strong>spraak.<br />

(iv) Als (als |= f, dan |= g), dan |= f → g.<br />

Oplossing: Klopt niet.<br />

We hebben dus een voorbeeld nodig waarvoor ‘(als |= f, dan |= g)’ waar is. Dit is<br />

zelf ook weer een ‘als. . . , dan. . . ’ bewering en kan dus op twee manieren waar wor<strong>de</strong>n<br />

gemaakt.<br />

(1) Als |= f niet waar is.<br />

(2) Als |= f en |= g allebei waar zijn.<br />

Als we in één <strong>van</strong> <strong>de</strong>ze situaties kunnen laten zien dat |= f → g niet waar is, hebben<br />

we dus een tegenvoorbeeld gevon<strong>de</strong>n.<br />

Neem nu f = a en g = b. Als we nu naar <strong>de</strong> mo<strong>de</strong>llen <strong>van</strong> a → b kijken, zien we dat<br />

er vier verschillen<strong>de</strong> mo<strong>de</strong>llen zijn: v1(a) = 0 en v1(b) = 0, v2(a) = 0 en v2(b) = 1,<br />

v3(a) = 1 en v3(b) = 0, v4(a) = 1 en v4(b) = 1. In een waarheidstabel ziet dat er zo <strong>uit</strong>:<br />

mo<strong>de</strong>lnaam a b a → b<br />

v1 0 0 1<br />

v2 0 1 1<br />

v3 1 0 0<br />

v4 1 1 1<br />

Maar omdat bijvoorbeeld v1(a) = 0 volgt meteen dat |= a niet waar is. Dus voor <strong>de</strong>ze<br />

concrete keuze <strong>van</strong> f en g geldt ‘(als |= f, dan |= g)’. Echter, als we v3(a → b) gaan<br />

<strong>uit</strong>rekenen, zien we dat v3(a → b) = 0. Dus geldt |= f → g niet. En dus hebben<br />

we in<strong>de</strong>rdaad een tegenvoorbeeld gevon<strong>de</strong>n. En dus klopt <strong>de</strong> oorspronkelijke <strong>uit</strong>spraak<br />

niet.<br />

(v) Als |= ¬f, dan niet |= f.<br />

Oplossing: Klopt.<br />

Deze keer geven we <strong>het</strong> bewijs zon<strong>de</strong>r <strong>het</strong> woord ‘mo<strong>de</strong>l’ te gebruiken, maar door te<br />

beschrijven wat er in <strong>de</strong> waarheidstabellen gebeurt, zon<strong>de</strong>r <strong>de</strong> waarheidstabellen <strong>uit</strong><br />

te schrijven. Omdat <strong>de</strong> bewering moet wor<strong>de</strong>n bewezen voor elke f en g kun je ook<br />

6


helemaal geen tabel <strong>uit</strong>schrijven want je weet bijvoorbeeld niet welke atomen er in<br />

zitten. Maar je weet wel of er al dan niet 1-en en 0-en in <strong>de</strong> tabel voorkomen en dat is<br />

genoeg om <strong>de</strong>ze bewering te bewijzen.<br />

Neem aan |= ¬f. Dan bevat <strong>de</strong> kolom <strong>van</strong> ¬f alleen 1-en. En die <strong>van</strong> f dus alleen 0-en.<br />

Per <strong>de</strong>finitie geldt |= f dus niet. En dus klopt <strong>de</strong> <strong>uit</strong>spraak zelf wel.<br />

(vi) Als |= f ∨ g, dan |= f of |= g.<br />

Oplossing: Klopt niet.<br />

We zoeken een tegenvoorbeeld met |= f ∨ g maar toch niet |= f en niet |= g. Neem<br />

voor f = a en g = ¬a. Dan zijn er twee verschillen<strong>de</strong> mo<strong>de</strong>llen: v1 met v1(a) = 0 en<br />

v2 met v2(a) = 1. Hier<strong>uit</strong> volgt meteen dat v1(¬a) = 1 en v2(¬a) = 0. Uit v1(a) = 0<br />

volgt dat |= a niet geldt. En <strong>uit</strong> v2(¬a) = 0 volgt dat ook |= ¬a niet geldt. Echter,<br />

v1(a ∨ ¬a) = 1 en v2(a ∨ ¬a) = 1, dus geldt in<strong>de</strong>rdaad wel |= f ∨ g. En dus is dit een<br />

goed tegenvoorbeeld. En dus klopt <strong>de</strong> oorspronkelijke <strong>uit</strong>spraak niet.<br />

(vii) Als |= f → g, dan (als |= f, dan |= g).<br />

Oplossing: Klopt.<br />

Neem aan |= f → g. Dan geldt voor elk mo<strong>de</strong>l v dat v(f → g) = 1. Door te kijken hoe<br />

→ werkt zien we dat er twee manieren zijn waarop v(f → g) = 1 kan voorkomen:<br />

(1) v(f) = 0 (en <strong>de</strong> waar<strong>de</strong> <strong>van</strong> v(g) is niet <strong>van</strong> belang)<br />

(2) v(f) = 1 en v(g) = 1.<br />

We moeten in bei<strong>de</strong> gevallen laten zien dat ‘als |= f, dan |= g’ waar is.<br />

(1) Stel dat er een mo<strong>de</strong>l v is met v(f) = 0. Dat betekent automatisch dat |= f niet<br />

waar kan zijn en dus is <strong>de</strong> bewering ‘als |= f, dan |= g’ kloppend.<br />

(2) Dus hoeven we alleen nog maar te kijken naar <strong>de</strong> situatie dat alle mo<strong>de</strong>llen v(f) = 1<br />

geven. Maar dan volgt meteen <strong>uit</strong> <strong>de</strong> hierboven gemaakte gevalson<strong>de</strong>rscheiding dat<br />

v(g) = 1 voor alle mo<strong>de</strong>llen. Dus is ‘als |= f, dan |= g’ waar.<br />

Omdat in bei<strong>de</strong> situaties <strong>de</strong> conclusie ‘als |= f, dan |= g’ volgt, klopt <strong>de</strong> oorspronkelijke<br />

bewering dus.<br />

(viii) Als |= f ↔ g, dan (|= f dan en slechts dan als |= g).<br />

Oplossing: Klopt.<br />

Voor <strong>de</strong> afwisseling weer een keer een bewijs zon<strong>de</strong>r mo<strong>de</strong>llen, maar met waarheidstabellen.<br />

Neem aan |= f ↔ g. Dit betekent dat in <strong>de</strong> waarheidstabel <strong>de</strong> waarheidswaar<strong>de</strong>n <strong>van</strong> f<br />

en g op elke regel gelijk zijn (of allebei 0 of allebei 1). Als we nu ver<strong>de</strong>r aannemen dat<br />

|= f, dan heeft f dus alleen maar 1-en als waarheidswaar<strong>de</strong>n. Maar dan heeft g ook<br />

alleen maar 1-en. En dus geldt dan |= g. An<strong>de</strong>rsom geldt ook: als |= g waar is, dan<br />

heeft g allemaal 1-en in <strong>de</strong> waarheidstabel en f dus ook. Dus <strong>de</strong> hele bewering klopt.<br />

(ix) Als (|= f dan en slechts dan als |= g), dan |= f ↔ g.<br />

Oplossing: Klopt niet.<br />

Neem voor f = a en g = b. We hebben dan weer <strong>de</strong>zelf<strong>de</strong> vier mo<strong>de</strong>llen als bij on<strong>de</strong>r<strong>de</strong>el<br />

4. In <strong>het</strong> bijzon<strong>de</strong>r hebben we dus v1(a) = 0 en v1(b) = 0. Dus geldt |= a niet. En ook<br />

|= b geldt niet. De bewering ‘|= f dan en slechts dan als |= g’ is dan echter wel waar!<br />

Als we echter v3 bekijken dan zien we dat v3(a ↔ b) = 0. En dus geldt |= f ↔ g niet.<br />

En dus hebben we een tegenvoorbeeld gevon<strong>de</strong>n. En klopt <strong>de</strong> oorspronkelijke bewering<br />

niet.<br />

7


Opgave 1.G Laat zien dat <strong>de</strong> volgen<strong>de</strong> proposities telkens logisch equivalent aan elkaar zijn.<br />

Oplossing: Of proposities logisch equivalent zijn, kunnen we makkelijk zien aan <strong>de</strong><br />

waarheidstabellen. Twee proposities zijn alleen maar logisch equivalent als hun kolommen<br />

precies gelijk zijn.<br />

(i) (a ∧ b) ∧ c en a ∧ (b ∧ c)<br />

Oplossing: Deze proposities zijn logisch equivalent:<br />

a b c a ∧ b b ∧ c (a ∧ b) ∧ c a ∧ (b ∧ c)<br />

0 0 0 0 0 0 0<br />

0 0 1 0 0 0 0<br />

0 1 0 0 0 0 0<br />

0 1 1 0 1 0 0<br />

1 0 0 0 0 0 0<br />

1 0 1 0 0 0 0<br />

1 1 0 1 0 0 0<br />

1 1 1 1 1 1 1<br />

(ii) (a ∨ b) ∨ c en a ∨ (b ∨ c)<br />

Oplossing: Ook <strong>de</strong>ze proposities zijn logisch equivalent:<br />

a b c a ∨ b b ∨ c (a ∨ b) ∨ c a ∨ (b ∨ c)<br />

0 0 0 0 0 0 0<br />

0 0 1 0 1 1 1<br />

0 1 0 1 1 1 1<br />

0 1 1 1 1 1 1<br />

1 0 0 1 0 1 1<br />

1 0 1 1 1 1 1<br />

1 1 0 1 1 1 1<br />

1 1 1 1 1 1 1<br />

Opgave 1.H Laat f en g proposities zijn. Is <strong>de</strong> volgen<strong>de</strong> <strong>uit</strong>spraak waar? f ≡ g dan en<br />

slechts dan als |= f ↔ g.<br />

Oplossing: Deze <strong>uit</strong>spraak is te splitsen in twee <strong>de</strong>el<strong>uit</strong>spraken:<br />

1. Als f ≡ g dan |= f ↔ g. Stel f ≡ g, dan hebben f en g altijd <strong>de</strong>zelf<strong>de</strong> waarheidswaar<strong>de</strong><br />

in ie<strong>de</strong>re rij <strong>van</strong> <strong>de</strong> waarheidstabel (of allebei 0 of allebei 1). Maar dan heeft f ↔ g<br />

automatisch in elke rij een 1. En dus geldt |= f ↔ g is dan waar.<br />

2. Als |= f ↔ g, dan f ≡ g. Stel |= f ↔ g is waar. Dan staat op elke regel in <strong>de</strong> waarheidstabel<br />

voor f ↔ g dus een 1. Maar dat betekent dat in elk mo<strong>de</strong>l <strong>de</strong> waarheidswaar<strong>de</strong><br />

<strong>van</strong> f gelijk is aan die <strong>van</strong> g. En dat is precies wat f ≡ g ook <strong>uit</strong>drukt, dus f ≡ g is<br />

waar.<br />

De twee <strong>de</strong>el<strong>uit</strong>spraken zijn waar, dus <strong>de</strong> totale <strong>uit</strong>spraak is waar.<br />

Opgave 1.I Zijn <strong>de</strong> volgen<strong>de</strong> <strong>uit</strong>spraken waar?<br />

Oplossing: Ook <strong>de</strong>ze opgave kun je eenvoudig oplossen door <strong>de</strong> waarheidstabellen <strong>uit</strong> te<br />

schrijven en vervolgens <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> ‘logisch gevolg’ te controleren.<br />

(i) a ∧ b |= a<br />

Oplossing: a ∧ b |= a is waar, want in ie<strong>de</strong>r mo<strong>de</strong>l waar a ∧ b waar is, is ook a waar.<br />

8


(ii) a ∨ b |= a<br />

Oplossing: a∨b |= a is niet waar; <strong>de</strong> bewering zegt dat als a∨b waar is voor een mo<strong>de</strong>l,<br />

dan moet ook a waar zijn in dat mo<strong>de</strong>l. Er zijn echter mo<strong>de</strong>llen te vin<strong>de</strong>n waarvoor dat<br />

niet geldt. Neem bijvoorbeeld <strong>het</strong> mo<strong>de</strong>l v met v(a) = 0 en v(b) = 1.<br />

(iii) a |= a ∨ b<br />

Oplossing: a |= a ∨ b is waar: als a waar is in een mo<strong>de</strong>l, dan is altijd ook a ∨ b waar<br />

in dat mo<strong>de</strong>l.<br />

(iv) a ∧ ¬a |= b<br />

Oplossing: a ∧ ¬a |= b is waar: als a ∧ ¬a waar is in een mo<strong>de</strong>l, dan is b ook waar<br />

in dat mo<strong>de</strong>l. Dit lijkt een foute bewering omdat a ∧ ¬a in geen enkel mo<strong>de</strong>l waar is.<br />

Echter, <strong>de</strong> woordjes ‘als’ en ‘dan’ maken <strong>de</strong> totale bewering waar, juist doordat <strong>het</strong> ‘als’<br />

<strong>de</strong>el nooit waar zal zijn.<br />

Je kunt <strong>het</strong> ook an<strong>de</strong>rsom bekijken: als <strong>de</strong> bewering a∧¬a |= b niet waar zou zijn, moet<br />

je een mo<strong>de</strong>l kunnen aanwijzen waarin b niet waar is en a ∧ ¬a wel. Dat laatste gaat<br />

natuurlijk niet lukken.<br />

9


2 Predikaatlogica<br />

Opgave 2.A Geef twee mogelijke vertalingen voor <strong>de</strong> volgen<strong>de</strong> zin.<br />

Sharon houdt <strong>van</strong> Maud; een aardige man houdt <strong>van</strong> zo’n knappe vrouw.<br />

Oplossing: Dit is een lastige opgave. Het probleem is dat in <strong>het</strong> Ne<strong>de</strong>rlands niet dui<strong>de</strong>lijk<br />

is wat er bedoeld wordt met zo’n knappe vrouw. Hier moet je dus je eigen interpretatie voor<br />

geven. Uiteraard mag je geen onzinnige interpretaties geven. Het is wel <strong>de</strong> bedoeling dat je<br />

hier iets ver<strong>de</strong>digbaars gebruikt. Het nu volgen<strong>de</strong> lijstje is dan ook niet volledig, maar bevat<br />

slechts voorbeel<strong>de</strong>n <strong>van</strong> interpretaties.<br />

(i) Heel zwak: interpreteer zo’n als een:<br />

H(s, m) ∧ ∀x ∈ M [A(x) → ∃y ∈ V [K(y) ∧ H(x, y)]]<br />

(ii) Interpreteer zo’n knappe vrouw als Sharon die nog knap is ook<br />

H(s, m) ∧ ∀x ∈ M [A(x) → (H(x, s) ∧ K(s))]<br />

(iii) Interpreteer zo’n knappe vrouw als Maud die nog knap is ook<br />

H(s, m) ∧ ∀x ∈ M [A(x) → (H(x, m) ∧ K(m))]<br />

(iv) Interpreteer zo’n knappe vrouw als alle vrouwen die knap zijn:<br />

H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [K(y) → H(x, y)]]<br />

(v) Interpreteer zo’n knappe vrouw als alle vrouwen die net zo knap zijn als Sharon:<br />

H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [(K(y) ↔ K(s)) → H(x, y)]]<br />

Let wel, hier staat dus niet dat Sharon knap is. Alleen maar dat als Sharon knap is,<br />

dan wordt een willekeurige vrouw die ook knap is bemind door aardige mannen. En<br />

als Sharon niet knap is, dan wordt een willekeurige vrouw die ook niet knap is bemind<br />

door aardige mannen.<br />

(vi) Interpreteer zo’n knappe vrouw als alle vrouwen die net zo knap zijn als Maud:<br />

H(s, m) ∧ ∀x ∈ M [A(x) → ∀y ∈ V [(K(y) ↔ K(m)) → H(x, y)]]<br />

(vii) Interpreteer zo’n knappe vrouw als knappe lesbiennes<br />

H(s, m) ∧ ∀x ∈ M [A(x) → ∀y1, y2 ∈ V [(K(y1) ∧ H(y1, y2)) → H(x, y1)]]<br />

Be<strong>de</strong>nk dat ∀y1, y2 ∈ V [f] een afkorting is voor ∀y1 ∈ V [∀y2 ∈ V [f]].<br />

Merk overigens op dat in geen enkele interpretatie die hier gegeven wordt <strong>de</strong> existentiële<br />

kwantor ∃x ∈ M is gebruikt, terwijl er in <strong>de</strong> tekst toch alleen maar ‘een aardige man’ staat.<br />

Ook dat heeft weer met <strong>de</strong> ondui<strong>de</strong>lijke interpretatie <strong>van</strong> <strong>het</strong> Ne<strong>de</strong>rlands te maken. Wat<br />

bedoelen we nu eigenlijk als we zeggen ‘een kind houdt <strong>van</strong> ijs’? Bedoelen we dan dat er<br />

ergens een kind is dat <strong>van</strong> ijs houdt of bedoelen we dan dat (normaal gesproken) alle kin<strong>de</strong>ren<br />

<strong>van</strong> ijs hou<strong>de</strong>n?<br />

10


Opgave 2.B Vertaal <strong>de</strong> on<strong>de</strong>rstaan<strong>de</strong> formules naar een zin in <strong>het</strong> Ne<strong>de</strong>rlands.<br />

Oplossing: Dit soort <strong>opgaven</strong> kun je <strong>het</strong> beste in stappen maken. Eerst geef je een<br />

Ne<strong>de</strong>rlandse zin die heel dicht bij <strong>de</strong> formule blijft. Vervolgens ga je in <strong>het</strong> Ne<strong>de</strong>rlands met<br />

voegwoor<strong>de</strong>n en woordvolgor<strong>de</strong>s spelen om er een dui<strong>de</strong>lijkere zin <strong>van</strong> te maken. Hierbij moet<br />

je er natuurlijk wel op letten dat <strong>de</strong> betekenis <strong>het</strong>zelf<strong>de</strong> blijft!<br />

<br />

<br />

(i) ∃x ∈ M L(x) ∧ ∃v ∈ V [K(v) ∧ I(v) ∧ H(x, v)]<br />

Oplossing:<br />

• Er is een man die lang is en er is een vrouw die knap en intelligent is en waar die<br />

man <strong>van</strong> houdt.<br />

• Er is een lange man en er is een knappe en intelligente vrouw waar die man <strong>van</strong><br />

houdt.<br />

• Er is een lange man die <strong>van</strong> een zekere knappe en intelligente vrouw houdt.<br />

Het woord zekere is hier toegevoegd om aan te geven dat <strong>de</strong>ze man niet <strong>van</strong> elke<br />

knappe en intelligente vrouw houdt maar <strong>van</strong> een of an<strong>de</strong>re vrouw waar<strong>van</strong> we<br />

alleen maar weten dat er minimaal één bestaat <strong>van</strong> dat type.<br />

<br />

<br />

(ii) ∃x ∈ M L(x) ∧ ∃v ∈ V [K(v) ∧ ¬I(v) ∧ H(x, v)] ∧ ∃w ∈ V [I(w) ∧ H(w, x)]<br />

Oplossing:<br />

• Er is een man die lang is en er is een vrouw die knap en niet intelligent is en waar<br />

die man <strong>van</strong> houdt en er is een vrouw die intelligent is en die <strong>van</strong> die man houdt.<br />

• Er is een lange man die <strong>van</strong> een zekere knappe, maar niet intelligente vrouw houdt<br />

en die zelf wordt bemind door een of an<strong>de</strong>re intelligente vrouw.<br />

De ∃v ∈ V en ∃w ∈ V sl<strong>uit</strong>en niet <strong>uit</strong> dat die v en w <strong>de</strong>zelf<strong>de</strong> vrouw kunnen zijn.<br />

Echter omdat er een extra gegeven is dat v niet en w wel intelligent is, weten we<br />

zeker dat <strong>het</strong> hier om verschillen<strong>de</strong> vrouwen gaat.<br />

Opgave 2.C Formaliseer <strong>de</strong> volgen<strong>de</strong> zin.<br />

Sharon is knap; er is een man die lekker in zijn vel zit <strong>van</strong> wie zij houdt.<br />

Hierbij wordt ge<strong>de</strong>finieerd dat iemand lekker in zijn vel zit als hij of zij <strong>van</strong> zich zelf houdt.<br />

Oplossing: Gebruikmakend <strong>van</strong> <strong>de</strong> woor<strong>de</strong>nboeken op pagina 11 en 12 kan dit zo geformaliseerd<br />

wor<strong>de</strong>n:<br />

K(s) ∧ ∃x ∈ M [H(x, x) ∧ H(s, x)]<br />

Opgave 2.D Formaliseer <strong>de</strong> volgen<strong>de</strong> zinnen.<br />

(i) Voor ie<strong>de</strong>re x en y geldt: x houdt <strong>van</strong> y alleen als x lekker in zijn of haar vel zit.<br />

Oplossing: Be<strong>de</strong>nk dat ‘alleen als’ niet <strong>het</strong>zelf<strong>de</strong> is als ‘dan en slechts dan als’. Dus<br />

∀x, y ∈ V ∪ M[H(x, y) → H(x, x)] is goed en ∀x, y ∈ V ∪ M[H(x, y) ↔ H(x, x)] niet.<br />

(ii) Voor ie<strong>de</strong>re x en y geldt: x houdt <strong>van</strong> y als die lekker in zijn of haar vel zit.<br />

Oplossing: ∀x, y ∈ V ∪ M[H(y, y) → H(x, y)]<br />

(iii) Voor ie<strong>de</strong>re x en y geldt: x houdt precies dan <strong>van</strong> y als y lekker in zijn of haar vel zit.<br />

Oplossing: ∀x, y ∈ V ∪ M[H(y, y) ↔ H(x, y)]<br />

11


(iv) Er is iemand die <strong>van</strong> alle mensen houdt.<br />

Oplossing: ∃x ∈ V ∪ M [∀y ∈ V ∪ M[H(x, y)]]<br />

Opgave 2.E (i) Ga na dat F2 in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I1 niet geldt. Geldt F1<br />

wel?<br />

Oplossing:<br />

F1 := ∀x ∈ D∃y ∈ D K(x, y)<br />

F2 := ∃x ∈ D∀y ∈ D K(x, y)<br />

Dus ongeacht <strong>van</strong> welk mo<strong>de</strong>l of welke interpretaie wij gebruiken wil F1 zeggen dat voor<br />

alle x in <strong>het</strong> domein er een y in datzelf<strong>de</strong> domein gekozen kan wor<strong>de</strong>n waarvoor <strong>de</strong><br />

relatie K(x, y) geldt.<br />

En F2 wil zeggen dat er een x in <strong>het</strong> domein gekozen kan wor<strong>de</strong>n waarvoor <strong>de</strong> relatie<br />

K(x, y) geldt voor elke y in dat zelf<strong>de</strong> domein.<br />

Wat betekent dat nu in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I1:<br />

D alle stu<strong>de</strong>nten in <strong>het</strong> lokaal<br />

K(x, y) x heeft een lager stu<strong>de</strong>ntnummer dan y<br />

Er wordt al verklapt dat F2 niet geldt in mo<strong>de</strong>l M1 on<strong>de</strong>r <strong>de</strong>ze interpretatie. Dus je<br />

moet laten zien dat F2 niet waar is. Omdat F2 er<strong>uit</strong> ziet als ∃x ∈ D[f] betekent dat dat<br />

je voor alle x ∈ D moet laten zien dat <strong>de</strong> bewering f niet waar is. En analoog omdat<br />

<strong>de</strong>ze f zelf er<strong>uit</strong> ziet als ∀y ∈ D[g] betekent dat dat je voor alle x ∈ D moet laten zien<br />

dat er een y ∈ D bestaat waarvoor g niet waar is.<br />

Omdat er maar eindig veel stu<strong>de</strong>nten (zeg n met n ≥ 1) in <strong>het</strong> lokaal zitten, kun je ze<br />

op hun nummers sorteren. En omdat <strong>de</strong> nummers ook uniek zijn kunnen we spreken<br />

over <strong>het</strong> laagste nummer en <strong>het</strong> hoogste nummer. Op grond <strong>van</strong> <strong>de</strong>ze or<strong>de</strong>ning geven<br />

we <strong>de</strong> stu<strong>de</strong>nten een naam: s1 is <strong>de</strong> stu<strong>de</strong>nt met <strong>het</strong> laagste nummer en sn <strong>de</strong> stu<strong>de</strong>nt<br />

met <strong>het</strong> hoogste nummer.<br />

Als F2 waar is, moet je dus een stu<strong>de</strong>nt x kunnen kiezen waarvoor geldt dat hij een lager<br />

nummer heeft dan <strong>de</strong> nummers <strong>van</strong> alle stu<strong>de</strong>nten in <strong>het</strong> lokaal. De enige kanshebber<br />

voor x is natuurlijk <strong>de</strong> stu<strong>de</strong>nt met <strong>het</strong> laagste nummer, dus s1. (Dui<strong>de</strong>lijk toch?) Dus<br />

kies je x = s1. Dat betekent dat je ver<strong>de</strong>r moet bepalen of <strong>de</strong> formule<br />

∀y ∈ D K(s1, y)<br />

geldt of niet. Omdat s1 <strong>het</strong> laagste stu<strong>de</strong>ntnummer heeft, geldt <strong>de</strong>ze formule voor <strong>de</strong><br />

meeste stu<strong>de</strong>nten y wel. Echter, voor alle stu<strong>de</strong>nten y in <strong>het</strong> lokaal geldt <strong>de</strong> bewering<br />

niet. Want s1 zit namelijk zelf ook in dat lokaal en dus zou <strong>de</strong> formule<br />

K(s1, s1)<br />

ook waar moeten zijn en dat is zeker niet waar: s1 heeft geen lager stu<strong>de</strong>ntnummer dan<br />

s1.<br />

Omdat s1 onze enige kanshebber was om met succes <strong>de</strong> rol <strong>van</strong> x te spelen, weten we<br />

nu dus dat <strong>de</strong> formule<br />

F2 := ∃x ∈ D∀y ∈ D K(x, y)<br />

niet geldt in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I1.<br />

12


Grote vraag is: kan dit niet wat korter wor<strong>de</strong>n opgeschreven? Ja, dat kan wel. In <strong>het</strong><br />

bovenstaan<strong>de</strong> verhaal zijn heel veel <strong>van</strong>zelfspreken<strong>de</strong> <strong>de</strong>tails <strong>uit</strong>geschreven. Hieron<strong>de</strong>r<br />

een kortere variant:<br />

Sorteer <strong>de</strong> stu<strong>de</strong>nten oplopend op hun unieke stu<strong>de</strong>ntnummer. Geef ze in<br />

die volgor<strong>de</strong> een naam waarbij s1 <strong>de</strong> stu<strong>de</strong>nt is met <strong>het</strong> laagste nummer en<br />

sn die met <strong>het</strong> hoogste nummer. Stel dat F2 wel waar is. Dan zijn er twee<br />

mogelijkhe<strong>de</strong>n voor x.<br />

• x = si met i ∈ {2, . . . , n}. Dan geldt K(si, s1) niet, dus zeker niet<br />

∀y ∈ D K(x, y). Dus is dit geen goe<strong>de</strong> keuze voor x.<br />

• x = s1. Dan geldt K(s1, s1) niet en dus ook hier geldt ∀y ∈ D K(x, y))<br />

niet, want ook s1 ∈ D.<br />

Dus we kunnen geen x vin<strong>de</strong>n die F2 waarmaakt en dus geldt F2 niet in dit<br />

mo<strong>de</strong>l.<br />

Nu <strong>de</strong> vraag of F1 geldt in dit mo<strong>de</strong>l. Of met an<strong>de</strong>re woor<strong>de</strong>n: is <strong>het</strong> zo dat er voor<br />

elke stu<strong>de</strong>nt x er een stu<strong>de</strong>nt y gekozen kan wor<strong>de</strong>n die een hoger stu<strong>de</strong>ntnummer heeft<br />

dan x. Ook dit is niet mogelijk. Omdat F1 <strong>van</strong> <strong>de</strong> vorm ∀x ∈ D [∃y ∈ D K(x, y)] is,<br />

zijn we nu tevre<strong>de</strong>n zodra we één x kunnen aanwijzen waarvoor er geen y bestaat zodat<br />

K(x, y) waar is.<br />

Kies nu maar voor x <strong>de</strong> stu<strong>de</strong>nt sn die <strong>het</strong> hoogste stu<strong>de</strong>ntnummer <strong>uit</strong> <strong>het</strong> lokaal heeft.<br />

We hebben eer<strong>de</strong>r al laten zien dat dat kan. Bij <strong>de</strong>ze sn is er geen enkele y te vin<strong>de</strong>n<br />

waarvoor <strong>het</strong> stu<strong>de</strong>ntnummer hoger is; <strong>het</strong> is immers op z’n hoogst gelijk als we weer<br />

sn zelf kiezen. En dus hebben we met stu<strong>de</strong>nt sn een stu<strong>de</strong>nt gevon<strong>de</strong>n waarbij we geen<br />

stu<strong>de</strong>nt kunnen vin<strong>de</strong>n met een hoger stu<strong>de</strong>ntnummer. Dus F1 geldt niet in mo<strong>de</strong>l M1<br />

on<strong>de</strong>r interpretatie I1.<br />

(ii) Ga na dat F1 in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I2 geldt. Geldt F2 ook?<br />

Oplossing: Dit is interpretatie I2:<br />

D alle stu<strong>de</strong>nten in <strong>het</strong> lokaal<br />

K(x, y) x is niet ou<strong>de</strong>r dan y<br />

We moeten laten zien dat F1 wel geldt on<strong>de</strong>r <strong>de</strong>ze interpretatie I2. Dat betekent dat<br />

we voor elke x moeten laten zien dat we een y kunnen kiezen waarvoor K(x, y) waar is.<br />

Of met an<strong>de</strong>re woor<strong>de</strong>n: je moet een soort algoritme hebben om bij gegeven x een y te<br />

kiezen zodanig dat K(x, y) waar is.<br />

Hier is dat algoritme eenvoudig: kies y namelijk maar gelijk aan die gegeven x. Dan<br />

geldt K(x, y) want <strong>de</strong> leeftijd <strong>van</strong> x is <strong>de</strong> leeftijd <strong>van</strong> y en dus is x niet ou<strong>de</strong>r dan y.<br />

Op een soortgelijke manier kunnen we ook laten zien dat F2 geldt in mo<strong>de</strong>l M1 on<strong>de</strong>r<br />

interpretatie I2. Hier is <strong>het</strong> voldoen<strong>de</strong> om een verstandige x te kiezen. Zostraks hebben<br />

we <strong>de</strong> stu<strong>de</strong>nten gesorteerd op stu<strong>de</strong>ntnummer, nu doen we dat op leeftijd. Het grote<br />

verschil is dat <strong>de</strong> leeftij<strong>de</strong>n niet uniek hoeven te zijn, zelfs niet als je leeftijd niet zoals<br />

gebruikelijk meet in jaren, maar in secon<strong>de</strong>n of nog kleinere eenhe<strong>de</strong>n. Dus we kunnen<br />

hier niet spreken over <strong>de</strong> jongste of <strong>de</strong> oudste stu<strong>de</strong>nt. Er kunnen namelijk meer<strong>de</strong>re<br />

stu<strong>de</strong>nten <strong>de</strong> laagste leeftijd hebben. Of met an<strong>de</strong>re woor<strong>de</strong>n <strong>de</strong> <strong>de</strong>elverzameling <strong>van</strong><br />

jongste stu<strong>de</strong>nten bevat minstens één element. Gelukkig is dat hier goed genoeg. Neem<br />

voor x maar één <strong>van</strong> <strong>de</strong> stu<strong>de</strong>nten <strong>uit</strong> die <strong>de</strong>elverzameling <strong>van</strong> jongste stu<strong>de</strong>nten. Voor<br />

alle stu<strong>de</strong>nten y geldt dan dat of x even oud is als y, of x is echt jonger dan y. In alle<br />

gevallen is x dus niet ou<strong>de</strong>r dan y en geldt F2 dus in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I2.<br />

13


(iii) Kijk om je heen en ga na of F1 in <strong>het</strong> mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I3 geldt. Ga ook<br />

na of F2 geldt.<br />

Oplossing: Dit is interpretatie I3:<br />

D alle stu<strong>de</strong>nten in <strong>het</strong> lokaal<br />

K(x, y) x zit naast y<br />

In mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I3 is <strong>het</strong> niet dui<strong>de</strong>lijk of F1 waar is of niet. Dat hangt<br />

namelijk af <strong>van</strong> <strong>de</strong> concrete situatie in <strong>het</strong> lokaal. Als er ergens een stu<strong>de</strong>nt zit zon<strong>de</strong>r<br />

directe buren, kun je hem als tegenvoorbeeld gebruiken. Immers kies je hem als x, kun<br />

je geen stu<strong>de</strong>nt y vin<strong>de</strong>n die naast hem zit. Als er nergens stu<strong>de</strong>nten apart zitten, is<br />

F1 wel waar. Bij elke stu<strong>de</strong>nt x die je kiest heb je een algoritme om een stu<strong>de</strong>nt y te<br />

kiezen zodat K(x, y) waar is: neem namelijk één <strong>van</strong> zijn buren.<br />

F2 is altijd niet waar in mo<strong>de</strong>l M1 on<strong>de</strong>r interpretatie I3. De formule zegt namelijk<br />

dat er één stu<strong>de</strong>nt moet zijn die naast alle stu<strong>de</strong>nten moet zitten. Nu kun je nog wel<br />

proberen om een klas met twee stu<strong>de</strong>nten te nemen of een klas waarin alle tafels in een<br />

soort ster staan waar één stu<strong>de</strong>nt in <strong>het</strong> mid<strong>de</strong>n naast alle an<strong>de</strong>re stu<strong>de</strong>nten kan zitten,<br />

maar je krijgt <strong>het</strong> nooit voor elkaar om een situatie te hebben waar je een stu<strong>de</strong>nt kunt<br />

kiezen die ook naast zichzelf zit. En dat is wel wat er volgens F2 zou moeten gel<strong>de</strong>n<br />

on<strong>de</strong>r interpretatie I3.<br />

Opgave 2.F Ga na dat G2 waar is in mo<strong>de</strong>l M4 on<strong>de</strong>r interpretatie I8, maar niet in mo<strong>de</strong>l<br />

M3 on<strong>de</strong>r interpretatie I7. Ofwel: ((Q,


(ii) On<strong>de</strong>r interpretatie I10 betekent G2 dat voor ie<strong>de</strong>re x ∈ Q er een y ∈ Q is zodat y = 2·x.<br />

Dit is waar: kies een x en kies daarna voor y maar <strong>het</strong> getal 2 · x.<br />

Opgave 2.I We bekijken als mo<strong>de</strong>l <strong>de</strong> lan<strong>de</strong>n <strong>van</strong> Europa met <strong>de</strong> volgen<strong>de</strong> interpretatie I11.<br />

L verzameling <strong>van</strong> lan<strong>de</strong>n <strong>van</strong> Europa<br />

n Ne<strong>de</strong>rland<br />

d D<strong>uit</strong>sland<br />

i Ierland<br />

G(x, y) x grenst aan y<br />

D(x, y, z) x, y en z hebben een drielan<strong>de</strong>npunt met elkaar<br />

(i) Formaliseer <strong>de</strong> zin “Ne<strong>de</strong>rland en D<strong>uit</strong>sland <strong>de</strong>len een drielan<strong>de</strong>npunt”<br />

Oplossing: De meest voor <strong>de</strong> hand liggen<strong>de</strong> formule is ∃x ∈ L [D(n, d, x)], maar er<br />

zijn genoeg alternatieven te be<strong>de</strong>nken: ∃x ∈ L [D(n, d, x)], ∃x ∈ L [D(x, d, n)], ∃y ∈<br />

L [D(y, n, d)], . . .<br />

(ii) Welke <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> formules is waar in dit mo<strong>de</strong>l on<strong>de</strong>r <strong>de</strong>ze interpretatie:<br />

(1) G3 := ∀x ∈ L∃y ∈ L[G(x, y)]<br />

Oplossing: G3 betekent dat voor elk land x er een land y is dat grenst aan x. Dit<br />

is niet waar, want <strong>het</strong> geldt bijvoorbeeld niet voor eilan<strong>de</strong>n als IJsland en Malta.<br />

(2) G4 := ∀x, y ∈ L[(∃z ∈ L D(x, y, z)) → G(x, y)]<br />

Oplossing: G4 betekent dat voor alle lan<strong>de</strong>n x en y geldt dat als er een land z is<br />

dat een drielan<strong>de</strong>npunt heeft met x en y, dan grenzen x en y aan elkaar. Dit is<br />

waar: als twee lan<strong>de</strong>n een drielan<strong>de</strong>npunt hebben, dan grenzen ze automatisch aan<br />

elkaar.<br />

(3) G5 := ∀x ∈ L[G(i, x) → ∃y ∈ L[D(i, x, y)]].<br />

Oplossing: G5 betekent dat als een land grenst aan Ierland dan heeft <strong>het</strong> daar<br />

ook een drielan<strong>de</strong>npunt mee. Dit is niet waar: neem <strong>het</strong> Verenigd Koninkrijk: dat<br />

grenst aan Ierland (via <strong>het</strong> gebied Noord-Ierland) maar heeft er geen drielan<strong>de</strong>npunt<br />

mee gemeen. (Als i als interpretatie IJsland zou hebben, zou G5 waar zijn,<br />

want G(i, x) is altijd onwaar (voor ie<strong>de</strong>re x), dus is <strong>de</strong> implicatie altijd waar.)<br />

Opgave 2.J Be<strong>de</strong>nk zelf een mo<strong>de</strong>l M5 en een interpretatie I12 zodat<br />

(M5, I12) |= ∀x ∈ D∃y ∈ E[R(x, y) ∧ ¬R(y, x) ∧ ¬R(y, y)]<br />

Oplossing: Neem bijvoorbeeld<br />

• als mo<strong>de</strong>l M5 <strong>de</strong> natuurlijke getallen en als interpretatie I12:<br />

D N<br />

E N<br />

R(x, y) x < y<br />

Check zelf dat <strong>de</strong> formule geldt als je bij x ∈ N voor y <strong>de</strong> waar<strong>de</strong> x + 1 kiest.<br />

• als mo<strong>de</strong>l M5 <strong>de</strong> verzameling alle mensen en <strong>de</strong> va<strong>de</strong>r <strong>van</strong> relatie en als interpretatie<br />

I12:<br />

D alle mensen<br />

E alle mensen<br />

R(x, y) y is <strong>de</strong> va<strong>de</strong>r <strong>van</strong> x<br />

Merk op dat R(x, y) met x is <strong>de</strong> va<strong>de</strong>r <strong>van</strong> y niet werkt.<br />

15


Bij <strong>de</strong>ze opgave dient eigenlijk nog gezegd te wor<strong>de</strong>n dat <strong>de</strong> domeinen D en E wel wat met<br />

elkaar te maken moeten hebben. Bij Formeel Denken gaan we hier niet echt ver<strong>de</strong>r op in,<br />

maar bij Beweren en Bewijzen zul je zien dat elke relatie R(x, y) een type heeft, bijvoorbeeld<br />

N → Q → {0, 1}. Dit betekent dat x ∈ N en y ∈ Q moet zitten en vervolgens levert R(x, y)<br />

dan een 1 of 0 als <strong>de</strong> relatie in <strong>de</strong> gegeven interpretatie al dan niet waar is. Bij <strong>de</strong>ze opgave<br />

schrijven we zowel R(x, y) als R(y, x). Omdat <strong>het</strong> type <strong>van</strong> R vastligt als D → E → {0, 1},<br />

moet dus x ∈ D, x ∈ E, y ∈ D en y ∈ E! Dus een mo<strong>de</strong>l <strong>de</strong>finiëren waarbij D <strong>de</strong> verzameling<br />

auto’s is en E <strong>de</strong> verzameling fietsen en dan R(x, y) interpreteren als ‘x is sneller dan y’ is<br />

een beetje gek omdat een auto namelijk nooit een fiets is of omgekeerd. In dit geval zou je<br />

dan ook een superdomein V , <strong>de</strong> verzameling <strong>van</strong> voertuigen, kunnen toevoegen en <strong>het</strong> type<br />

<strong>van</strong> R <strong>de</strong>finiëren als V → V → {0, 1}. In dat geval kun je zon<strong>de</strong>r problemen zowel R(x, y) als<br />

R(y, x) schrijven zon<strong>de</strong>r iets onzinnigs te beweren. Heb je niets begrepen <strong>van</strong> <strong>de</strong>ze opmerking,<br />

hoef je je voorlopig nog geen zorgen te maken. Het komt bij Beweren en Bewijzen aan bod.<br />

Opgave 2.K Beschouw <strong>de</strong> interpretatie I13:<br />

M domein <strong>van</strong> <strong>de</strong> mensen;<br />

V (x) x is vrouw;<br />

O(x, y) x is ou<strong>de</strong>r <strong>van</strong> y;<br />

G(x, y) x is getrouwd met y.<br />

Formaliseer <strong>de</strong> volgen<strong>de</strong> zinnen in <strong>de</strong> predikaatlogica met gelijkheid.<br />

(i) Ie<strong>de</strong>reen heeft precies één moe<strong>de</strong>r.<br />

Oplossing:<br />

∀x ∈ M [ ∃y ∈ M [ V (y) ∧ O(y, x)<br />

]<br />

∧<br />

∀y, z ∈ M [ (V (y) ∧ O(y, x) ∧ V (z) ∧ O(z, x)) → y = z<br />

]<br />

]<br />

In <strong>de</strong>ze formule speelt x <strong>de</strong> rol <strong>van</strong> iemand, <strong>de</strong> y en z spelen <strong>de</strong> rol <strong>van</strong> moe<strong>de</strong>rs. De<br />

eerste y wordt gebruikt om aan te tonen dat er een moe<strong>de</strong>r is, <strong>de</strong> twee<strong>de</strong> wordt samen<br />

met <strong>de</strong> z gebruikt om te laten zien dat er maximaal één moe<strong>de</strong>r is. Strikt genomen<br />

hebben die twee y’s dus niets met elkaar te maken. Als <strong>de</strong> twee<strong>de</strong> y op elke plaats<br />

ver<strong>van</strong>gen was door een w was <strong>de</strong> formule ook goed geweest. Let ook op <strong>de</strong> scope <strong>van</strong><br />

die x: ook in <strong>het</strong> twee<strong>de</strong> stuk (≤ 1 moe<strong>de</strong>rs), moet je wel terug kunnen verwijzen naar<br />

je oorspronkelijke persoon x.<br />

Een alternatieve oplossing die net zo goed is:<br />

∀x ∈ M [ ∃y ∈ M [ V (y) ∧ O(y, x)<br />

∧<br />

∀z ∈ M[(V (z) ∧ O(z, x)) → y = z]<br />

]<br />

]<br />

Het grote verschil is dat <strong>de</strong> y nu maar één keer gebon<strong>de</strong>n wordt en zowel gebruikt wordt<br />

om aan te tonen dat er minimaal één moe<strong>de</strong>r is als om aan te tonen dat elke ‘an<strong>de</strong>re’<br />

moe<strong>de</strong>r <strong>de</strong>zelf<strong>de</strong> blijkt te zijn.<br />

16


(ii) Ie<strong>de</strong>reen heeft precies twee oma’s.<br />

Oplossing:<br />

∀x ∈ M [ ∃y, z ∈ M [ y = z ∧<br />

∃u ∈ M[V (y) ∧ O(y, u) ∧ O(u, x)]∧<br />

∃u ∈ M[V (z) ∧ O(z, u) ∧ O(u, x)]<br />

]<br />

∧<br />

∀y, z, v ∈ M [ (y = z ∧<br />

∃u ∈ M[V (y) ∧ O(y, u) ∧ O(u, x)]∧<br />

∃u ∈ M[V (z) ∧ O(z, u) ∧ O(u, x)]∧<br />

∃u ∈ M[V (v) ∧ O(v, u) ∧ O(u, x)]) → (v = y ∨ v = z)<br />

]<br />

]<br />

De x speelt weer <strong>de</strong> rol <strong>van</strong> iemand, <strong>de</strong> y en z spelen <strong>de</strong> rol <strong>van</strong> <strong>de</strong> twee verschillen<strong>de</strong><br />

oma’s en <strong>de</strong> u speelt <strong>de</strong> rol <strong>van</strong> <strong>de</strong> va<strong>de</strong>r of moe<strong>de</strong>r <strong>van</strong> x en tegelijkertijd <strong>het</strong> kind <strong>van</strong><br />

<strong>de</strong> oma’s.<br />

(iii) Ie<strong>de</strong>re getrouw<strong>de</strong> man heeft precies één echtgenote.<br />

Oplossing: Een eerste poging is:<br />

∀x ∈ M [∃y ∈ M [G(x, y)] → (∀z1, z2 ∈ M[G(x, z1) ∧ G(x, z2) → z1 = z2])]<br />

Deze zin zegt dat voor ie<strong>de</strong>re persoon x <strong>het</strong> volgen<strong>de</strong> geldt: Als x getrouwd is, dan is<br />

er maar één persoon met wie x getrouwd is (want als x met z1 en met z2 getrouwd is,<br />

dan z1 = z2).<br />

Het zegt echter niets over <strong>het</strong> man zijn en <strong>het</strong> vrouw zijn <strong>van</strong> <strong>de</strong> echtgenote. We moeten<br />

<strong>de</strong> formule dus iets aanpassen:<br />

∀x ∈ M [ ¬V (x) ∧ ∃y ∈ M[G(x, y)]<br />

→<br />

(∀z1, z2 ∈ M[G(x, z1) ∧ G(x, z2) → z1 = z2 ∧ V (z1)])<br />

]<br />

Merk op dat we na <strong>de</strong> → niets meer over y kunnen zeggen. Echter, omdat die ∀z1 in<br />

<strong>het</strong> bijzon<strong>de</strong>r ook die eer<strong>de</strong>rgenoem<strong>de</strong> y moet bevatten, volgt <strong>uit</strong> <strong>de</strong> V (z1) toch dat die<br />

ene persoon waarmee <strong>de</strong> man x getrouwd is een vrouw meot zijn.<br />

Opgave 2.L Gebruik interpretatie I13 <strong>van</strong> opgave 2.K. Formaliseer <strong>de</strong> volgen<strong>de</strong> eigenschappen.<br />

(i) S(x, y): x en y hebben samen een kind gemaakt.<br />

Oplossing: Definieer<br />

S(x, y) := x = y ∧ ∃z ∈ M[O(x, z) ∧ O(y, z)]<br />

Dan zijn x en y twee verschillen<strong>de</strong> personen en er is een persoon z waar zowel x als y<br />

ou<strong>de</strong>r <strong>van</strong> is. (Als we x = y weglaten zou S(x, x) ook waar zijn, maar <strong>de</strong> zin bedoelt<br />

niet te zeggen dat iemand met zichzelf een kind heeft gemaakt. . . )<br />

17


(ii) B(x, y): x is broer <strong>van</strong> y (pas op: zie ook volgen<strong>de</strong> item).<br />

Oplossing: Definieer<br />

B(x, y) := ¬V (x) ∧ x = y ∧ ∃q, r ∈ M[q = r ∧ O(q, x) ∧ O(q, y) ∧ O(r, x) ∧ O(r, y)]<br />

Dan is x een broer <strong>van</strong> y als x man is (en niet <strong>de</strong>zelf<strong>de</strong> is als y), en er twee verschillen<strong>de</strong><br />

ou<strong>de</strong>rs q en r zijn, die ou<strong>de</strong>r zijn <strong>van</strong> ie<strong>de</strong>r <strong>van</strong> <strong>de</strong>ze twee kin<strong>de</strong>ren.<br />

(iii) H(x, y): x is halfzus <strong>van</strong> y.<br />

Oplossing: Definieer<br />

H(x, y) := V (x) ∧ x = y∧<br />

∃o1, o2, o3 ∈ M[o1 = o2 ∧ o2 = o3 ∧ o3 = o1 ∧<br />

O(o1, x) ∧ O(o2, x) ∧ O(o2, y) ∧ O(o3, y)]<br />

Dan is x een halfzus <strong>van</strong> y als x vrouw is, en er drie ou<strong>de</strong>rs o1, o2, o3 zijn waarbij x kind<br />

is <strong>van</strong> o1 en o2 en y kind is <strong>van</strong> o2 en o3. Bovendien moeten <strong>de</strong>ze drie ou<strong>de</strong>rs verschillend<br />

zijn.<br />

Vertaal terug naar <strong>de</strong> omgangstaal.<br />

(iv) ∃x∈M∀y∈M O(x, y). Geldt dit?<br />

Oplossing: “Er is een persoon x die ou<strong>de</strong>r is <strong>van</strong> alle mensen.” Dit geldt niet.<br />

(v) ∀z1∈M∀z2∈M[(∃x∈M∃y1∈M∃y2∈M O(x, y1) ∧ O(y1, z1) ∧ O(x, y2) ∧ O(y2, z2)) →<br />

¬(∃w∈M(O(z1, w) ∧ O(z2, w)))]. Geldt dit?<br />

Oplossing: “Ie<strong>de</strong>r tweetal mensen dat een gemeenschappelijke grootou<strong>de</strong>r heeft, heeft<br />

geen gemeenschappelijk kind”. Dit geldt niet. (Realiseer je dat <strong>het</strong> “tweetal mensen”<br />

waar <strong>het</strong> over gaat ook één en <strong>de</strong>zelf<strong>de</strong> persoon kan zijn! Dan zie je meteen dat <strong>het</strong> niet<br />

geldt.)<br />

Opgave 2.M Gegeven <strong>de</strong> interpretatie I14<br />

D N;<br />

P (x, y, z) x + y = z;<br />

M(x, y, z) x · y = z.<br />

Formaliseer<br />

Oplossing: Bij <strong>de</strong>ze opgave hebben we straks <strong>de</strong> formalisatie <strong>van</strong> x = 0 en x = 1 nodig.<br />

Daar beginnen we mee.<br />

• x = 0 als a · x = x voor alle a. Dus <strong>de</strong>finieer<br />

x = 0 := ∀a ∈ D[M(a, x, x)]<br />

• x = 1 als x · a = a voor alle a. Dus <strong>de</strong>finieer<br />

x = 1 := ∀a ∈ D[M(x, a, a)]<br />

(i) x < y.<br />

Oplossing: x < y: dit is waar wanneer x + r = y en r = 0.<br />

Definieer:<br />

x < y := ∃r ∈ D[P (x, r, y) ∧ r = 0]<br />

18


(ii) x | y (x is <strong>de</strong>ler <strong>van</strong> y).<br />

Oplossing: x|y (x is <strong>de</strong>ler <strong>van</strong> y): er is een getal z zodat x · z = y. Definieer<br />

x|y := ∃z ∈ D[M(x, z, y)]<br />

(iii) x is priemgetal.<br />

Oplossing: x is priem: x is niet 1 en <strong>het</strong> heeft geen factoren an<strong>de</strong>rs dan 1 en zichzelf.<br />

Definieer<br />

x is priem := x = 1 ∧ ¬∃y, z ∈ D[M(y, z, x) ∧ y = x ∧ z = x ∧ y = 1 ∧ z = 1]<br />

Een an<strong>de</strong>re formalisatie gebruikt <strong>de</strong> zojuist ge<strong>de</strong>finieer<strong>de</strong> x|y.<br />

x is priem := x = 1 ∧ ∀y ∈ D[(y|x) → (y = 1 ∨ y = x)]<br />

19


3 Talen en automaten<br />

Opgave 3.A In voorbeeld 3.5 heb je voorbeel<strong>de</strong>n gezien <strong>van</strong> beschrijvingen <strong>van</strong> talen. Probeer<br />

<strong>het</strong> nu zelf.<br />

(i) Beschrijf L1 ∩ L2.<br />

Oplossing: L1 ∩ L2 bestaat <strong>uit</strong> <strong>de</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm a n b n die een even aantal a’s<br />

bevatten, dus L1 ∩ L2 = {a n b n | n ∈ N, n is even}. Een an<strong>de</strong>re manier om dit te<br />

beschrijven is L1 ∩ L2 = {a 2n b 2n | n ∈ N}<br />

(ii) Beschrijf L2 ∩ L4.<br />

Oplossing: L2 ∩L4 bestaat <strong>uit</strong> <strong>de</strong> woor<strong>de</strong>n w <strong>van</strong> <strong>de</strong> vorm a n b n waarvoor geldt w = w R .<br />

Dat geldt alleen als n = 0, dus als w = λ, dus L2 ∩ L4 = {λ}.<br />

(iii) Beschrijf L3 ∩ L4.<br />

Oplossing: L3 ∩ L4 bestaat dan <strong>uit</strong> <strong>de</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm wcv waarvoor geldt:<br />

|w| = |v|, w bevat geen b en v bevat geen a en wcv = v R cw R . Dat kan alleen als w en v<br />

allebei <strong>uit</strong> alleen c’s bestaan, dus L3 ∩L4 = {c n | n ∈ N, n is oneven} = {c 2n+1 | n ∈ N}.<br />

Opgave 3.B Gebruik <strong>de</strong> <strong>de</strong>finities <strong>uit</strong> voorbeeld 3.5.<br />

(i) Bewijs dat L1 = L1 ∗<br />

Oplossing: Om L1 = L1 ∗ te bewijzen laten we zien dat L1 ⊆ L1 ∗ en L1 ∗ ⊆ L1. Het<br />

eerste is bekend: voor elk woord w in L1 kun je in <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> L1 ∗ k = 1 nemen en<br />

w1 = w en dan heb je bewezen dat w ∈ L1 ∗ . Voor <strong>het</strong> twee<strong>de</strong> <strong>de</strong>el: als w ∈ L1 ∗ dan<br />

is w <strong>van</strong> <strong>de</strong> vorm w1 · · · wk met k ≥ 0 en alle wi hebben een even aantal a’s (want elke<br />

wi ∈ L1). Maar dan heeft w zelf ook een even aantal a’s, en dus w ∈ L1.<br />

(ii) Geldt L2L2 = L2? Geef een bewijs of een tegenvoorbeeld.<br />

Oplossing: Nee. abab ∈ L2L2 en abab ∈ L2.<br />

∗<br />

? Geef een bewijs of een tegenvoorbeeld.<br />

Oplossing: L1 = {w | w bevat een oneven aantal a’s}. Het antwoord is ‘nee’, want<br />

∗<br />

aa ∈ L1 en aa ∈ L1. (Be<strong>de</strong>nk dat L1<br />

(iii) Geldt L1 = L1<br />

∗<br />

betekent dat je eerst <strong>het</strong> complement <strong>van</strong> L1<br />

neemt en daarna pas <strong>de</strong> Kleene afsl<strong>uit</strong>ing.)<br />

(iv) Voor welke talen <strong>uit</strong> voorbeeld 3.5 geldt L = LR ? (Alleen antwoord, geen bewijs.)<br />

Oplossing: Alleen voor L1 en L4.<br />

Bij L1 draai je woor<strong>de</strong>n om die een even aantal a’s hebben en dat veran<strong>de</strong>rt <strong>het</strong> aantal<br />

a’s natuurlijk niet. Bij L2 gaat <strong>het</strong> mis: bbaa ∈ L2 R maar bbaa ∈ L2. Bij L3 gaat <strong>het</strong><br />

ook mis: bca ∈ L3 R maar bca ∈ L3. Bij L4 gaat <strong>het</strong> om omgedraai<strong>de</strong> palindromen en<br />

per <strong>de</strong>finitie is een omgedraai<strong>de</strong> palindroom weer een palindroom.<br />

Opgave 3.C (i) Laat zien dat we <strong>de</strong> operator ?, waarbij a ? staat voor 0 of 1 keer a niet<br />

hoeven toe te voegen aan <strong>de</strong> reguliere expressies, omdat we hem al kunnen maken.<br />

Oplossing: We kunnen a ? <strong>de</strong>finiëren als a ∪ λ.<br />

(ii) Wat is L(∅ab ∗ )?<br />

Oplossing: L(∅ab ∗ ) = L(∅)L(a)L(b ∗ ) = ∅{a}{b} ∗ en dat zijn <strong>de</strong> woor<strong>de</strong>n w1w2w3 zodat<br />

w1 ∈ ∅, w2 ∈ {a} en w3 ∈ {b} ∗ . Maar er is geen w1 ∈ ∅, dus L(∅ab ∗ ) = ∅.<br />

(iii) Geef een reguliere expressie die <strong>de</strong> taal L5 := {w ∈ {a, b} ∗ | w bevat minstens één a}<br />

beschrijft.<br />

Oplossing: (a∪b) ∗ a(a∪b) ∗ . De minimale a staat in <strong>het</strong> mid<strong>de</strong>n <strong>van</strong> <strong>de</strong> expressie; zowel<br />

daarvoor als daarna kan er een willekeurig rijtje <strong>van</strong> a’s en b’s komen en zo’n willekeurig<br />

rijtje (eventueel <strong>van</strong> lengte 0) wordt met (a ∪ b) ∗ weergegeven. Een an<strong>de</strong>re expressie die<br />

<strong>de</strong>zelf<strong>de</strong> taal genereert is b ∗ a(a ∪ b) ∗ .<br />

20


(iv) Geef een reguliere expressie die <strong>de</strong> taal L1 <strong>uit</strong> voorbeeld 3.5 beschrijft.<br />

Oplossing: (b ∗ ab ∗ ab ∗ ) ∗ b ∗ . Het i<strong>de</strong>e is dat <strong>de</strong> ingewikkel<strong>de</strong> expressie b ∗ ab ∗ ab ∗ een reguliere<br />

expressie is die elk woord met precies twee a’s erin beschrijft. Door nu (b ∗ ab ∗ ab ∗ ) ∗<br />

te nemen krijg je dus 0 of meer rijtjes met precies twee a’s en daarmee kun je bijna alle<br />

rijtjes met een even aantal a’s maken. De enige die je dan nog mist is als je 0 a’s hebt:<br />

in dat geval moet je nog een b ∗ toevoegen om woor<strong>de</strong>n als bbb te kunnen maken. Die<br />

b ∗ mag overigens ook vooraan wor<strong>de</strong>n geschreven, dus b ∗ (b ∗ ab ∗ ab ∗ ) ∗ is ook een goe<strong>de</strong><br />

oplossing. Ver<strong>de</strong>r is (b ∪ ab ∗ a) ∗ ook correct.<br />

(v) Laat zien dat L(ab(ab) ∗ ) = L(a(ba) ∗ b).<br />

Oplossing: L(ab(ab) ∗ ) bestaat <strong>uit</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm ab gevolgd door n keer ab (met<br />

n ≥ 0). Maar ab gevolgd door n keer ab is <strong>de</strong>zelf<strong>de</strong> string als a gevolgd door n keer ba,<br />

gevolgd door b. En <strong>de</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> laatste vorm zijn precies <strong>de</strong> taal L(a(ba) ∗ b).<br />

Je kunt <strong>het</strong> ook op <strong>de</strong> volgen<strong>de</strong> manier bewijzen. Een willekeurig woord <strong>uit</strong> L(ab(ab) ∗ )<br />

ziet er<strong>uit</strong> als ab(ab) n met n ∈ N. Maar zo’n willekeurig woord kunnen we herschrijven:<br />

ab(ab) n = ab(ab) · · · (ab)<br />

= abab · · · ab<br />

= ababa · · · bab<br />

= a(ba)(ba) · · · (ba)b<br />

= a(ba) n b<br />

en dat is een woord <strong>uit</strong> L(a(ba) ∗ b). Dus L(ab(ab) ∗ ) ⊆ L(a(ba) ∗ b). Het bewijs dat ook<br />

L(a(ba) ∗ b) ⊆ L(ab(ab) ∗ ) gaat analoog.<br />

Merk op dat <strong>het</strong> algemene bewijs dat hier gegeven is (met · · · ) alleen maar klopt voor<br />

n ≥ 3; ga zelf na dat je voor n = 0, 1, 2 een soortgelijk herschrijfbewijs kunt opschrijven<br />

(maar dan zon<strong>de</strong>r · · · ).<br />

Wie niet houdt <strong>van</strong> bewijzen met · · · erin, moet even wachten op <strong>het</strong> volgen<strong>de</strong> hoofdstuk<br />

waarin bewijzen met inductie wor<strong>de</strong>n <strong>uit</strong>gelegd. Heel in <strong>het</strong> kort is dat een manier om<br />

aan <strong>de</strong> hand <strong>van</strong> een bewijs voor een specifiek simpel geval (basisstap) en een bewijs <strong>van</strong><br />

een metho<strong>de</strong> om <strong>uit</strong> een simpel geval een iets moeilijker geval af te lei<strong>de</strong>n (inductiestap),<br />

een bewijs voor alle gevallen te maken. Hier ziet dat er zo <strong>uit</strong> (maar dit hoef je nu<br />

natuurlijk nog niet te begrijpen).<br />

Basisstap. Elk woord in L(ab(ab) ∗ ) ziet er<strong>uit</strong> als ab(ab) n met n ∈ N. Het kleinste<br />

woord krijgen we dus als n = 0 en dat is dus ab. Het is meteen dui<strong>de</strong>lijk dat ab ook in<br />

L(a(ba) ∗ b) zit. Dus voor n = 0 geldt <strong>het</strong> dat ab(ab) n = a(ba) n b.<br />

Inductiestap. We nemen nu aan dat we al weten dat <strong>de</strong> gewenste eigenschap geldt voor<br />

een of an<strong>de</strong>re n ∈ N. In dit geval betekent dat dus dat we weten dat voor zekere n<br />

geldt dat ab(ab) n = a(ba) n b. Dit noemen we <strong>de</strong> inductiehypothese (IH). Nu moeten we<br />

bewijzen dat dan ook geldt ab(ab) n+1 = a(ba) n+1 b. Dat gaan we nu laten zien:<br />

ab(ab) n+1 = ab(ab) n (ab)<br />

21<br />

= ab(ab) n ab<br />

IH = a(ba) n bab<br />

= a(ba) n (ba)b<br />

= a(ba) n+1 b


Op <strong>de</strong> plaats waar IH staat, passen we <strong>de</strong> inductiehypothese toe op <strong>het</strong> eerste <strong>de</strong>el <strong>van</strong><br />

<strong>de</strong> string.<br />

Doordat we nu weten dat <strong>de</strong> eigenschap voor n = 0 geldt, weten we met <strong>de</strong> inductiestap<br />

dat hij ook voor n = 1 geldt. Maar dan weten we door nogmaals <strong>de</strong> inductiestap toe<br />

te passen dat hij ook voor n = 2 geldt. En zo ver<strong>de</strong>r gaand, kun je aantonen dat<br />

voor elke n ∈ N geldt dat ab(ab) n = a(ba) n b. Maar dat betekent dat elk woord in<br />

L(ab(ab) ∗ ) ook in L(a(ba) ∗ b) zit. Dus L(ab(ab) ∗ ) ⊆ L(a(ba) ∗ b). Het bewijs dat ook<br />

L(a(ba) ∗ b) ⊆ L(ab(ab) ∗ ) waar is, gaat analoog natuurlijk.<br />

Opgave 3.D Laat zien dat <strong>de</strong> volgen<strong>de</strong> talen regulier zijn.<br />

(i) L6 := {w ∈ {a, b} ∗ | ie<strong>de</strong>re a in w wordt direct gevolgd door een b},<br />

Oplossing: Een reguliere expressie voor L6 is (b ∪ ab) ∗ . (NB: een woord <strong>uit</strong> L6 hoeft<br />

niet noodzakelijk een a te bevatten.) Een an<strong>de</strong>re oplossing is (b ∗ (ab) ∗ ) ∗ .<br />

(ii) L7 := <strong>de</strong> taal <strong>van</strong> alle goedgevorm<strong>de</strong> integer-expressies. Deze bestaan <strong>uit</strong> <strong>de</strong> symbolen<br />

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, maar ze beginnen nooit met een 0 (behalve <strong>het</strong> getal 0 zelf<br />

natuurlijk) en mogen eventueel wor<strong>de</strong>n voorafgegaan door een + of een −.<br />

Oplossing: Een reguliere expressie voor L7 is<br />

((+ ∪ − ∪ λ)(1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)(0 ∪ 1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9) ∗ ) ∪ 0<br />

Bij <strong>de</strong>ze oplossing is er voor gekozen dat je wel 0 zelf kunt maken, maar niet +0 of<br />

−0. Hoe kun je <strong>de</strong>ze oplossing aanpassen om toch ook −0 toe te staan? Let wel: met<br />

integer-expressies wor<strong>de</strong>n dus eigenlijk alleen getallen bedoeld, al dan niet voorzien <strong>van</strong><br />

een teken en geen rekenkundige operaties zoals hierna.<br />

(iii) L8 := <strong>de</strong> taal <strong>van</strong> alle goedgevorm<strong>de</strong> rekenkundige expressies zon<strong>de</strong>r haakjes. Deze<br />

bestaan <strong>uit</strong> natuurlijke getallen met daartussen <strong>de</strong> operatoren +, − of ×, bijvoorbeeld<br />

7 + 3 × 29 − 78. (Hint: maak eerst een reguliere expressie voor <strong>de</strong> natuurlijke getallen;<br />

zo’n getal begint (bijna) nooit met een 0.)<br />

Oplossing: Het bijna nooit beginnen met een 0 levert <strong>de</strong> volgen<strong>de</strong> gevalson<strong>de</strong>rscheiding<br />

op: ofwel we hebben <strong>het</strong> getal 0, ofwel we hebben een getal dat nooit met een 0 begint:<br />

r := (0 ∪ (1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9)(0 ∪ 1 ∪ 2 ∪ 3 ∪ 4 ∪ 5 ∪ 6 ∪ 7 ∪ 8 ∪ 9) ∗ )<br />

Een reguliere expressie voor L8 is dan (r(+∪−∪×)) ∗ r. Merk op dat <strong>de</strong>ze expressie ook<br />

expressies zon<strong>de</strong>r operator genereert als bijvoorbeeld 37. Dat kun je voorkomen door<br />

<strong>de</strong> ∗ één keer <strong>uit</strong> te pakken: (r(+ ∪ − ∪ ×)) ∗ r(+ ∪ − ∪ ×)r.<br />

Opgave 3.E Welke <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> reguliere expressies beschrijven <strong>de</strong>zelf<strong>de</strong> taal? Toon <strong>het</strong><br />

aan of geef een string die wel in <strong>de</strong> ene en niet in <strong>de</strong> an<strong>de</strong>re taal zit.<br />

(i) b ∗ (aab) ∗ .<br />

(ii) b ∗ (baa) ∗ b.<br />

(iii) bb ∗ (aab) ∗ .<br />

Oplossing: We geven <strong>de</strong> talen even een naam: L := L(b ∗ (aab) ∗ ), L ′ := L(b ∗ (baa) ∗ b) en<br />

L ′′ := L(bb ∗ (aab) ∗ ).<br />

(i) L = L ′ , want λ zit in L maar niet in L ′ .<br />

(ii) L = L ′′ , want λ zit in L maar niet in L ′′ .<br />

(iii) L ′ = L ′′ , want<br />

22


• Als w ∈ L ′ , dan is w <strong>van</strong> <strong>de</strong> vorm b . . . b baa . . . baa b met n keer b en m keer baa<br />

(n, m ≥ 0). Als m = 0 zit dit woord zeker in L ′′ . ALs m > 0, dan kunnen we dit<br />

woord ook lezen als b . . . b b aab . . . aab met n+1 keer b en m keer aab, dus w ∈ L ′′ .<br />

In herschrijfregels ziet dit er zo <strong>uit</strong>:<br />

w = b n (baa) m b<br />

= b n (baa) · · · (baa)b<br />

= b n baa · · · baab<br />

= b n baab · · · aabaab<br />

= bb n aab · · · aabaab<br />

= bb n (aab) · · · (aab)(aab)<br />

= bb n (aab) m ∈ L ′′<br />

Ook hier geldt <strong>het</strong> algemene bewijs alleen als m ≥ 3 is; toon zelf aan dat <strong>de</strong> stelling<br />

ook klopt als m = 0, 1, 2.<br />

• Als w ∈ L ′′ , dan is w <strong>van</strong> <strong>de</strong> vorm b b . . . b aab . . . aab met n + 1 keer b en m keer<br />

aab (n, m ≥ 0). Als m = 0 zit dit woord zeker in L ′ . Als m > 0, dan kunnen we<br />

dit woord ook lezen als b . . . b baa . . . baa b met n keer b en m keer baa, dus w ∈ L ′ .<br />

Analoog als hierboven kan er ook een bewijs met herschrijfregels wor<strong>de</strong>n gegeven.<br />

Opgave 3.F (i) Laat zien dat <strong>de</strong> taal <strong>van</strong> gebalanceer<strong>de</strong> haakjesexpressies contextvrij is.<br />

Dat zijn expressies over {(, )} waarbij ie<strong>de</strong>r openingshaakje altijd precies één sl<strong>uit</strong>haakje<br />

heeft, dus bijvoorbeeld (( )(( ))) en (( ))( ) zijn gebalanceerd, maar (( )( ))) niet.<br />

Oplossing: Gebalanceer<strong>de</strong> haakjesexpressies, zoals (()(())) en (())(), maak je met <strong>de</strong><br />

volgen<strong>de</strong> grammatica:<br />

of met<br />

S → SS | (S) | λ<br />

S → (S)S | λ<br />

(ii) Laat zien dat L1 <strong>uit</strong> voorbeeld 3.5 contextvrij is.<br />

Oplossing: L1:<br />

S → bS | aT | λ<br />

T → bT | aS<br />

(iii) Laat zien dat L2 <strong>uit</strong> voorbeeld 3.5 contextvrij is. (Kijk naar voorbeeld 3.13.)<br />

Oplossing: L2:<br />

S → aSb | λ<br />

(iv) Laat zien dat L3 <strong>uit</strong> voorbeeld 3.5 contextvrij is.<br />

Oplossing: L3:<br />

S → ASB | c<br />

A → a | c<br />

B → b | c<br />

23


Bouw <strong>de</strong> strings op <strong>van</strong><strong>uit</strong> <strong>het</strong> mid<strong>de</strong>n en plaats <strong>de</strong> mid<strong>de</strong>lste c pas in <strong>de</strong> laatste stap.<br />

Als je die c eer<strong>de</strong>r plaatst verlies je <strong>de</strong> controle om <strong>de</strong> lengte <strong>van</strong> w en v gelijk te hou<strong>de</strong>n.<br />

(v) Laat zien dat L4 <strong>uit</strong> voorbeeld 3.5 contextvrij is.<br />

Oplossing: L4:<br />

S → aSa | bSb | cSc | a | b | c | λ<br />

Bouw we<strong>de</strong>rom <strong>de</strong> woor<strong>de</strong>n op <strong>van</strong><strong>uit</strong> <strong>het</strong> mid<strong>de</strong>n.<br />

Opgave 3.G Bekijk <strong>de</strong> grammatica G1:<br />

(i) Schrijf G1 als een tripel 〈Σ, V, R〉.<br />

Oplossing:<br />

S → AS | Sb | λ<br />

A → aA | λ<br />

G1 = 〈{a, b}, {S, A}, {S → AS, S → Sb, S → λ, A → aA, A → λ}〉<br />

(ii) Geef een productie die laat zien dat aabb ∈ L(G1).<br />

Oplossing: Er zijn verschillen<strong>de</strong> producties mogelijk. Hier twee voorbeel<strong>de</strong>n:<br />

S → AS → aAS → aaAS → aaS → aaSb → aaSbb → aabb<br />

S → AS → ASb → ASbb → Abb → aAbb → aaAbb → aabb<br />

(iii) Kun je binnen drie minuten een productie geven die laat zien dat bbaa ∈ L(G1)?<br />

Oplossing: Nee, dat zal niet lukken want bbaa ∈ L(G1). Het bewijs daar<strong>van</strong> kunnen<br />

we nu nog niet geven, maar we komen er op terug in een latere opgave.<br />

Opgave 3.H Gegeven is <strong>de</strong> volgen<strong>de</strong> grammatica voor <strong>de</strong> taal L12.<br />

S → aSb | A | λ<br />

A → aAbb | abb<br />

De hulpsymbolen zijn dit keer S en A en Σ = {a, b}.<br />

(i) Geef <strong>de</strong> productie <strong>van</strong> abb en <strong>van</strong> aabb.<br />

Oplossing: Produceer abb via S → A → abb. Produceer aabb via S → aSb → aaSbb →<br />

aabb.<br />

(ii) Welke woor<strong>de</strong>n zitten in L12?<br />

Oplossing:<br />

• λ, door <strong>de</strong> regel S → λ<br />

• woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm a n Sb n met n ∈ N, geproduceerd door regel S → aSb<br />

• <strong>het</strong> hulpsymbool A produceert woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm a m b 2m met m ∈ N en m ≥ 1:<br />

abb,aabbbb,aaabbbbbb,... Dit is eenvoudig in te zien, omdat <strong>de</strong> productieregels voor<br />

A alleen gebruik maken <strong>van</strong> A zelf (geen S).<br />

• <strong>de</strong> regel S → A zorgt ervoor dat een S ver<strong>van</strong>gen kan wor<strong>de</strong>n door dat wat A<br />

produceert: a m b 2m dus. En a n Sb n levert dus a n a m b 2m b n met n, m ∈ N en m ≥ 1.<br />

Dit kan vereenvoudigd wor<strong>de</strong>n tot a n+m b n+2m met n, m ∈ N en m ≥ 1.<br />

24


Dit bij elkaar genomen levert <strong>de</strong> algemene vorm:<br />

L12 = {a n+m b n+2m | n, m ∈ N}<br />

De m ≥ 1 wordt opgeheven doordat je ook 0 keer <strong>de</strong> regel S → A kunt toepassen.<br />

We kunnen dit ook an<strong>de</strong>rs schrijven, namelijk als<br />

L12 := {a k b k+l | k ≥ 0, k ≥ l ≥ 0}.<br />

Opgave 3.I We bekijken nogmaals <strong>de</strong> taal behoren<strong>de</strong> bij G1 <strong>uit</strong> opgave 3.G. Er is daar al<br />

opgemerkt dat bbaa ∈ L(G1).<br />

(i) Is<br />

P (w) := w bevat geen ba als <strong>de</strong>elwoord<br />

een invariant voor G1 die bewijst dat bbaa ∈ L(G1)?<br />

Oplossing: Nee, want P (bA) geldt (want bA bevat niet <strong>het</strong> <strong>de</strong>elwoord ba) en A → aA<br />

is een productieregel <strong>van</strong> <strong>de</strong> grammatica, maar er geldt dui<strong>de</strong>lijk niet P (baA). Dus is<br />

P helemaal geen invariant.<br />

(ii) Is<br />

P (w) := w bevat geen ba en geen bA als <strong>de</strong>elwoord<br />

een invariant voor G1 die bewijst dat bbaa ∈ L(G1)?<br />

Oplossing: Nee, ook niet. Het tegenvoorbeeld <strong>uit</strong> <strong>het</strong> vorige on<strong>de</strong>r<strong>de</strong>el werkt nu niet<br />

meer omdat P (bA) niet geldt, maar er is wel een an<strong>de</strong>r tegenvoorbeeld. Nu geldt<br />

namelijk wel P (bS), maar P (bAS) niet terwijl S → AS wel een productieregel is.<br />

(iii) Is<br />

P (w) := w bevat geen ba en geen bA en geen bS als <strong>de</strong>elwoord<br />

een invariant voor G1 die bewijst dat bbaa ∈ L(G1)?<br />

Oplossing: Nee, nog steeds niet. Nu geldt wel P (SaA), maar via <strong>de</strong> regel S → Sb geldt<br />

SaA → SbaA en P (SbaA) geldt niet.<br />

Opgave 3.J Gebruik invarianten om te bewijzen dat:<br />

(i) bba ∈ L12.<br />

Oplossing: Een invariant is nu<br />

P (w) := w = λ of w = S, of w begint met een A of een a<br />

we zullen <strong>het</strong> bewijs hier heel <strong>uit</strong>voerig geven. Daartoe nummeren we eerst alle productieregels:<br />

S<br />

S<br />

S<br />

1<br />

→ aSb<br />

2<br />

→ A<br />

3<br />

→ λ<br />

A 4 → aAbb<br />

A 5 → abb<br />

Het is meteen dui<strong>de</strong>lijk dat P (S) geldt. Nu moeten we nog laten zien dat <strong>de</strong> invariant<br />

on<strong>de</strong>r <strong>de</strong> productieregels behou<strong>de</strong>n blijft. Dus als P (v) geldt voor zekere v en v → v ′<br />

dan moet ook P (v ′ ) gel<strong>de</strong>n. Omdat onze invariant <strong>van</strong> <strong>het</strong> type “w heeft één <strong>van</strong> <strong>de</strong>ze<br />

vier vormen” is, betekent dat dat we een grote gevalson<strong>de</strong>rscheiding moeten maken.<br />

25


• v = λ. In dit geval is er geen enkele productieregel toepasbaar en dus valt hier<br />

niets te controleren. In <strong>het</strong> bijzon<strong>de</strong>r geldt dus in al die gevallen P (v ′ ).<br />

• v = S. In dit geval moeten <strong>de</strong> eerste drie regels gecontroleerd wor<strong>de</strong>n. Uit <strong>de</strong> regels<br />

hierboven zien we meteen dat v ′ dan één <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> vormen heeft: v ′ = aSb,<br />

v ′ = A of v ′ = λ. En in alle drie <strong>de</strong> gevallen geldt P (v ′ ). Dus ook dit geval is in<br />

or<strong>de</strong>.<br />

• v begint met een A. In dit geval moeten we nog meer gevallen on<strong>de</strong>rschei<strong>de</strong>n omdat<br />

<strong>het</strong> mogelijk is dat in <strong>de</strong> rest <strong>van</strong> v ook nog hulpsymbolen staan. We schrijven ze<br />

hieron<strong>de</strong>r op, gevolgd door <strong>de</strong> mogelijke productieregels. Met v = A . . . bedoelen<br />

we dat v begint met A en er in <strong>de</strong> rest geen hulpsymbolen A of S staan. Met<br />

v = A . . . S . . . bedoelen we dat v begint met een A en er in <strong>de</strong> staart minimaal<br />

één keer een S staat.<br />

A . . .<br />

A . . .<br />

A . . . S . . .<br />

A . . . S . . .<br />

A . . . S . . .<br />

A . . . S . . .<br />

A . . . S . . .<br />

A . . . A . . .<br />

A . . . A . . .<br />

A . . . A . . .<br />

A . . . A . . .<br />

4<br />

→ aAbb . . .<br />

5<br />

→ abb<br />

1<br />

→ A . . . aSb . . .<br />

2<br />

→ A . . . A . . .<br />

3<br />

→ A . . . λ . . .<br />

4<br />

→ aAbb . . . S . . .<br />

5<br />

→ abb . . . S . . .<br />

4<br />

→ aAbb . . . A . . .<br />

4<br />

→ A . . . aAbb . . .<br />

5<br />

→ abb . . . A . . .<br />

5<br />

→ A . . . abb . . .<br />

We zien meteen dat alle mogelijke v ′ ofwel met een a ofwel met een A beginnen en<br />

dus geldt in alle gevallen P (v ′ ).<br />

• v begint met een a. We maken een soortgelijke analyse <strong>van</strong> <strong>de</strong> mogelijkhe<strong>de</strong>n:<br />

a . . . S . . .<br />

a . . . S . . .<br />

a . . . S . . .<br />

a . . . A . . .<br />

a . . . A . . .<br />

1<br />

→ a . . . aSb . . .<br />

2<br />

→ a . . . A . . .<br />

3<br />

→ a . . . λ . . .<br />

4<br />

→ a . . . aAbb . . .<br />

5<br />

→ a . . . abb . . .<br />

Ook hier zien we dat v ′ altijd met een a begint en dus geldt P (v ′ ) altijd.<br />

Op dit moment hebben we dus bewezen dat P een invariant is <strong>van</strong> <strong>de</strong> grammatica.<br />

Omdat P (bba) niet geldt moet dus wel gel<strong>de</strong>n bba ∈ L12.<br />

Zoals gezegd is dit bewijs heel <strong>uit</strong>voerig opgeschreven. Natuurlijk mag je <strong>het</strong> ook an<strong>de</strong>rs<br />

doen. Voor <strong>het</strong> geval v begint met een a kun je bijvoorbeeld volstaan met iets als: er is<br />

geen enkele productieregel die <strong>de</strong> eerste letter veran<strong>de</strong>rt en dus begint v ′ automatisch<br />

ook met een a.<br />

(ii) aabbb niet geproduceerd kan wor<strong>de</strong>n via <strong>de</strong> grammatica voor L3 die je in opgave 3.F<br />

gemaakt hebt.<br />

26


Oplossing: Een invariant is hier<br />

P (w) := w bevat een S of een c<br />

We<strong>de</strong>rom geldt P (S). Ver<strong>de</strong>r geldt dat P een invariant is on<strong>de</strong>r <strong>de</strong> productieregels.<br />

Immers <strong>de</strong> regels voor A en B veran<strong>de</strong>ren <strong>het</strong> aantal S-en niet en vermin<strong>de</strong>ren <strong>het</strong><br />

aantal c’s niet. En <strong>de</strong> regels voor S laten ofwel <strong>het</strong> aantal S-en gelijk ofwel neemt <strong>het</strong><br />

aantal c’s met één toe. Dui<strong>de</strong>lijk is ook dat aabbb geen S en geen c bevat. Dus P (aabbb)<br />

geldt niet en dus aabbb ∈ L3.<br />

(iii) aabbb niet geproduceerd kan wor<strong>de</strong>n via <strong>de</strong> grammatica voor L4 die je in opgave 3.F<br />

gemaakt hebt.<br />

Oplossing: Een voor <strong>de</strong> hand liggen<strong>de</strong> keuze als invariant is<br />

P (w) := <strong>het</strong> eerste symbool <strong>van</strong> w is <strong>het</strong>zelf<strong>de</strong> als <strong>het</strong> laatste<br />

Dan geldt P (S). Echter, in tegenstelling tot <strong>de</strong> verwachting blijft <strong>de</strong>ze eigenschap niet<br />

behou<strong>de</strong>n on<strong>de</strong>r <strong>de</strong> productieregels. Stel bijvoorbeeld dat v = SS. Dan geldt P (v).<br />

Maar we hebben dan <strong>de</strong> productie SS → Sc. En P (Sc) geldt dui<strong>de</strong>lijk niet. Hier merk<br />

je echt dat <strong>de</strong> invariant behou<strong>de</strong>n moet blijven voor alle woor<strong>de</strong>n v en in <strong>het</strong> bijzon<strong>de</strong>r<br />

dus ook voor woor<strong>de</strong>n als v = SS die je helemaal nooit met <strong>de</strong>ze grammatica kunt<br />

maken!<br />

Toch is <strong>de</strong> essentie <strong>van</strong> <strong>de</strong> invariant niet slecht. We hoeven hem alleen maar <strong>uit</strong> te<br />

brei<strong>de</strong>n om problemen als hierboven te voorkomen. Neem<br />

P (w) := <strong>het</strong> eerste symbool <strong>van</strong> w is <strong>het</strong>zelf<strong>de</strong> als <strong>het</strong> laatste en w bevat<br />

maximaal één S die dan ook nog eens precies in <strong>het</strong> mid<strong>de</strong>n <strong>van</strong> w staat<br />

Dui<strong>de</strong>lijk is dat P (S) weer geldt. Voor <strong>de</strong> productieregels maken we <strong>de</strong> volgen<strong>de</strong> gevalson<strong>de</strong>rscheiding.<br />

• v bevat geen S. Dan is <strong>het</strong> heel simpel: er zijn geen productieregels toepasbaar<br />

dus voor alle v ′ met v → v ′ geldt P (v ′ ).<br />

• v bevat precies één S die in <strong>het</strong> mid<strong>de</strong>n staat <strong>van</strong> v. Dus v = xySzx met x ∈<br />

{a, b, c}, y, z ∈ {a, b, c} ∗ en |y| = |z|. De volgen<strong>de</strong> producties zijn dan mogelijk:<br />

xySzx → xyaSazx<br />

xySzx → xybSbzx<br />

xySzx → xycSczx<br />

xySzx → xyazx<br />

xySzx → xybzx<br />

xySzx → xyczx<br />

En <strong>het</strong> is meteen dui<strong>de</strong>lijk dat P (v ′ ) geldt voor al <strong>de</strong>ze mogelijkhe<strong>de</strong>n. Dus is P<br />

een invariant <strong>van</strong> <strong>de</strong> grammatica. Dui<strong>de</strong>lijk is ook dat P (aabbb) niet geldt. Dus<br />

aabbb ∈ L4.<br />

27


Opgave 3.K (i) Bekijk <strong>de</strong> volgen<strong>de</strong> grammatica over alfabet {a, b, c}:<br />

S → A | B<br />

A → abS | λ<br />

B → bcS | λ<br />

Ga na of je <strong>de</strong> volgen<strong>de</strong> woor<strong>de</strong>n kunt produceren met <strong>de</strong>ze grammatica: abab, bcabbc,<br />

abba. Lukt dat, geef dan een productie. Lukt dat niet, geef dan een geschikte invariant<br />

waarmee je dit zou kunnen bewijzen.<br />

Oplossing: abab en bcabbc kunnen wel geproduceerd wor<strong>de</strong>n:<br />

S → A → abS → abA → ababS → ababA → abab<br />

S → B → bcS → bcA → bcabS → bcabB → bcabbcS → bcabbcB → bcabbc<br />

Het woord abba kan niet wor<strong>de</strong>n geproduceerd. Bekijk maar <strong>de</strong> eigenschap<br />

P (w) := <strong>het</strong> laatste symbool <strong>van</strong> w dat geen hulpsymbool is, is geen a<br />

Dit is een invariant. Omdat S geen niet-hulpsymbolen bevat, geldt P (S) automatisch.<br />

Stel nu dat we een v hebben met P (v). Dan is <strong>het</strong> laatste symbool dat geen hulpsymbool<br />

is geen a, maar een b of c. We on<strong>de</strong>rschei<strong>de</strong>n weer twee gevallen:<br />

• Er staan alleen maar hulpsymbolen in v. Dan zijn we op <strong>de</strong>zelf<strong>de</strong> manier als voor<br />

S meteen klaar.<br />

• Er is echt een laatste niet-hulpsymbool aanwezig. Noem dat x. We maken nu ver<strong>de</strong>r<br />

on<strong>de</strong>rscheid naar <strong>de</strong> in v aanwezige hulpsymbolen en hun bijbehoren<strong>de</strong> producties.<br />

– Als er een hulpsymbool voor x staat, dan maakt <strong>het</strong> niet <strong>uit</strong> welke productieregel<br />

we daarop toepassen. Omdat er alleen maar dingen voor x veran<strong>de</strong>ren,<br />

blijft x <strong>het</strong> laatste niet-hulpsymbool dat dus automatisch ongelijk aan a blijft.<br />

– Als er een A achter x staat kunnen er twee productieregels wor<strong>de</strong>n toegepast:<br />

. . . x . . . A . . . → . . . x . . . abS . . .<br />

. . . x . . . A . . . → . . . x . . . λ . . .<br />

Omdat er op <strong>de</strong> . . . achter <strong>de</strong> x alleen maar hulpsymbolen kunnen staan, is in<br />

<strong>het</strong> eerste geval <strong>het</strong> laatste niet-hulpsymbool <strong>de</strong> b direct voor <strong>de</strong> S gewor<strong>de</strong>n<br />

en dus ongelijk aan a. In <strong>het</strong> twee<strong>de</strong> geval is x <strong>het</strong> laatste niet-hulpsymbool<br />

gebleven en dus ook nog steeds ongelijk aan a. In bei<strong>de</strong> gevallen geldt P (v ′ )<br />

dus.<br />

– Als er een B achter x staat, krijg je twee analoge gevallen. In <strong>het</strong> ene geval<br />

wordt <strong>het</strong> laatste niet-hulpsymbool een c en in <strong>het</strong> an<strong>de</strong>re geval blijft <strong>het</strong> weer<br />

x. Dus ook nu geldt P (v ′ ) voor alle mogelijkhe<strong>de</strong>n.<br />

– Als er een S achter <strong>de</strong> x staat zijn er ook twee mogelijkhe<strong>de</strong>n. Maar bei<strong>de</strong><br />

leveren alleen maar an<strong>de</strong>re hulpsymbolen op en dus blijft x automatisch <strong>het</strong><br />

laatste niet-hulpsymbool (en dus ongelijk aan a). Dus ook in dit geval geldt<br />

P (v ′ ).<br />

28


Dus P is in<strong>de</strong>rdaad een invariant. Echter, <strong>het</strong> laatste niet-hulpsymbool <strong>van</strong> abba is een<br />

a en dus geldt P (abba) niet en kan dat woord dus niet geproduceerd wor<strong>de</strong>n.<br />

(ii) Beschrijf <strong>de</strong> reguliere taal L13 die <strong>de</strong>ze grammatica produceert met een reguliere expressie.<br />

Oplossing: De taal L13 die <strong>de</strong>ze grammatica produceert wordt ook gegeven door <strong>de</strong><br />

reguliere expressie ((ab) ∪ (bc)) ∗ , in an<strong>de</strong>re woor<strong>de</strong>n L13 = L ((ab) ∪ (bc)) ∗ .<br />

(iii) Maak een rechtslineaire grammatica voor <strong>de</strong> taal L14 bestaan<strong>de</strong> <strong>uit</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong><br />

vorm ab . . . aba (dus a’s en b’s om en om met vooraan en achteraan een a; zorg dat je<br />

ook a krijgt).<br />

Oplossing: Een rechts-lineaire grammatica voor <strong>de</strong> woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm ab . . . aba is<br />

S → abS | a<br />

Een an<strong>de</strong>re mogelijkheid die natuurlijk ook goed is:<br />

S → aB<br />

B → bS | λ<br />

Opgave 3.L Geef rechtslineaire grammatica’s voor <strong>de</strong> talen <strong>uit</strong> opgave 3.D:<br />

(i) L6 := {w ∈ {a, b} ∗ | ie<strong>de</strong>re a in w wordt direct gevolgd door een b},<br />

Oplossing:<br />

S → abS | bS | λ<br />

(ii) L7 := <strong>de</strong> taal <strong>van</strong> alle goedgevorm<strong>de</strong> integer-expressies. Deze bestaan <strong>uit</strong> <strong>de</strong> symbolen<br />

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, maar ze beginnen nooit met een 0 (behalve <strong>het</strong> getal 0 zelf<br />

natuurlijk) en mogen eventueel wor<strong>de</strong>n voorafgegaan door een + of een −.<br />

Oplossing:<br />

S → +T | −T | T<br />

T → 0 | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C<br />

C → 0C | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C | λ<br />

(iii) L8 := <strong>de</strong> taal <strong>van</strong> alle goedgevorm<strong>de</strong> rekenkundige expressies zon<strong>de</strong>r haakjes. Deze<br />

bestaan <strong>uit</strong> natuurlijke getallen met daartussen <strong>de</strong> operatoren +, − of ×, bijvoorbeeld<br />

7 + 3 × 29 − 78.<br />

Oplossing:<br />

S → 0 | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C<br />

C → 0C | 1C | 2C | 3C | 4C | 5C | 6C | 7C | 8C | 9C | λ | A<br />

A → +S | −S | ×S<br />

Merk op dat in <strong>de</strong>ze <strong>uit</strong>werking een rekenkundige expressie ook kan bestaan <strong>uit</strong> één<br />

getal zon<strong>de</strong>r operatoren.<br />

Opgave 3.M Hieron<strong>de</strong>r tonen we een grammatica voor een klein ge<strong>de</strong>elte <strong>van</strong> <strong>de</strong> Engelse<br />

taal.<br />

29


S = 〈zin〉 → 〈on<strong>de</strong>rwerpvorm〉〈werkwoordvorm〉.<br />

〈zin〉 → 〈on<strong>de</strong>rwerpvorm〉〈werkwoordvorm〉〈lij<strong>de</strong>ndvoorwerpvorm〉.<br />

〈on<strong>de</strong>rwerpvorm〉 → 〈eigennaam〉 | 〈lidwoord〉〈zelfstandignaamwoord〉<br />

〈eigennaam〉 → John | Jill<br />

〈zelfstandignaamwoord〉 → bicycle | mango<br />

〈lidwoord〉 → a | the<br />

〈werkwoordvorm〉 → 〈werkwoord〉 | 〈bijwoord〉〈werkwoord〉<br />

〈werkwoord〉 → eats | ri<strong>de</strong>s<br />

〈bijwoord〉 → slowly | frequently<br />

〈bijvoeglijknaamwoordlijst〉 → 〈bijvoeglijknaamwoord〉〈bijvoeglijknaamwoordlijst〉 | λ<br />

〈bijvoeglijknaamwoord〉 → big | juicy | yellow<br />

〈lij<strong>de</strong>ndvoorwerpvorm〉 → 〈bijvoeglijknaamwoordlijst〉〈eigennaam〉<br />

〈lij<strong>de</strong>ndvoorwerpvorm〉 → 〈lidwoord〉〈bijvoeglijknaamwoordlijst〉〈zelfstandignaamwoord〉<br />

(i) Is <strong>de</strong>ze grammatica rechtslineair?<br />

Oplossing: Deze grammatica is contextvrij, maar niet rechts-lineair (bijvoorbeeld <strong>de</strong><br />

eerste productieregel voldoet niet).<br />

(ii) Laat zien hoe je <strong>de</strong> volgen<strong>de</strong> zin produceert: Jill frequently eats a big juicy yellow mango.<br />

Oplossing:<br />

• <br />

• →. (R2)<br />

• →. (R3.1)<br />

• →Jill. (R4.2)<br />

• →Jill. (R7.2)<br />

• →Jill frequently . (R9.2)<br />

• →Jill frequently eats . (R8.1)<br />

• →Jill frequently eats .<br />

(R13)<br />

• →Jill frequently eats a . (R6.1)<br />

• →Jill frequently eats a .<br />

(R10.1)<br />

• →Jill frequently eats a big . (R11.1)<br />

• →Jill frequently eats a big .<br />

(R10.1)<br />

• →Jill frequently eats a big juicy .<br />

(R11.2)<br />

• →Jill frequently eats a big juicy


Opgave 3.N Bekijk <strong>de</strong> volgen<strong>de</strong> automaat M1.<br />

M1 :<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

q0<br />

a<br />

q1<br />

a<br />

b b<br />

a<br />

q3<br />

b<br />

q2<br />

<br />

<br />

a<br />

b<br />

In <strong>de</strong>ze automaat is Q = {q0, q1, q2, q3}, F = {q3} en Σ = {a, b}.<br />

(i) Ga voor <strong>de</strong> volgen<strong>de</strong> woor<strong>de</strong>n na of ze geaccepteerd wor<strong>de</strong>n: abaab, aaaba, bab, λ en<br />

aabbab.<br />

Oplossing: De woor<strong>de</strong>n wor<strong>de</strong>n op <strong>de</strong> volgen<strong>de</strong> manier verwerkt:<br />

abaab : q0 a → q1 b → q3 a → q0 a → q1 b → q3<br />

aaaba : q0 a → q1 a → q2 a → q3 b → q2 a → q3<br />

bab : q0 b → q2 a → q3 b → q2<br />

λ : q0<br />

aabbab : q0 a → q1 a → q2 b → q2 b → q2 a → q3 b → q2<br />

Alleen <strong>de</strong> woor<strong>de</strong>n abaab en aaaba eindigen in een eindtoestand (q3), dus alleen die twee<br />

woor<strong>de</strong>n wor<strong>de</strong>n geaccepteerd.<br />

(ii) Gel<strong>de</strong>n <strong>de</strong> volgen<strong>de</strong> <strong>uit</strong>spraken? Geef steeds een tegenvoorbeeld of een bewijs.<br />

(1) Als w geaccepteerd wordt, dan wordt wabba ook geaccepteerd.<br />

Oplossing: Dit is waar. Stel dat w geaccepteerd wordt, dan zit <strong>de</strong> automaat na <strong>het</strong><br />

lezen <strong>van</strong> w dus in toestand q3. Vervolgens moet <strong>van</strong><strong>uit</strong> q3 dan nog <strong>de</strong> string abba<br />

gelezen wor<strong>de</strong>n: q3 a → q0 b → q2 b → q2 a → q3. En dus bevindt <strong>de</strong> automaat zich na<br />

<strong>het</strong> lezen <strong>van</strong> wabba ook in een eindtoestand en wordt dat woord dus geaccepteerd.<br />

(2) Als w geaccepteerd wordt, dan wordt wab niet geaccepteerd.<br />

Oplossing: Dit is waar. Bewijs <strong>het</strong> nu zelf analoog aan <strong>het</strong> vorige geval.<br />

(3) Als w niet geaccepteerd wordt, dan wordt waa ook niet geaccepteerd.<br />

Oplossing: Dit is niet waar. Neem bijvoorbeeld w = a. Dan wordt w niet<br />

geaccepteerd, maar waa wordt wel geaccepteerd.<br />

(4) Als w niet geaccepteerd wordt, dan wordt wbb ook niet geaccepteerd.<br />

Oplossing: Dit is waar. Als <strong>de</strong> automaat na w geëindigd is en w is niet geaccepteerd,<br />

zit hij dus in q0, q1 of q2. Maar <strong>van</strong><strong>uit</strong> elk <strong>van</strong> <strong>de</strong>ze toestan<strong>de</strong>n ga je na <strong>het</strong><br />

verwerken <strong>van</strong> bb naar toestand q2 en dat is geen eindtoestand en dus wordt wbb<br />

in<strong>de</strong>rdaad niet geaccepteerd.<br />

Opgave 3.O Conclu<strong>de</strong>er <strong>uit</strong> <strong>de</strong> grammatica G3 dat<br />

(i) (aba) k ab ∈ L(M1) voor k ≥ 0,<br />

Oplossing: S → abaS → . . . → (aba) k S → (aba) k ab voor ie<strong>de</strong>re k ≥ 0. Dus eerst k<br />

keer <strong>de</strong> regel S → abaS toepassen en dan één keer <strong>de</strong> regel S → ab.<br />

(ii) aab k a ∈ L(M1) voor k ≥ 0,<br />

Oplossing: S → aaB → aabB → aabbB → . . . → aab k B → aab k a voor ie<strong>de</strong>re k ≥ 0.<br />

Dus eerst <strong>de</strong> regel S → aaB toepassen, dan k − 1 keer regel B → bB en tenslotte één<br />

keer B → a.<br />

31


(iii) als w ∈ L(M1), dan ook abaw ∈ L(M1),<br />

Oplossing: S → abaS en omdat w geaccepteerd is weet je ook dat er een S → . . . → w<br />

bestaat. Maar dan bestaat dus ook S → abaS → . . . → abaw.<br />

(iv) als w ∈ L(M1), dan ook aaaaw ∈ L(M1),<br />

Oplossing: S → aaB → aaaaS en je weet ook dat S → . . . → w bestaat, dus ook<br />

S → aaB → aaaaS → . . . → aaaaw.<br />

Opgave 3.P Maak een rechtslineaire grammatica bij <strong>de</strong> eindige automaat M0, zoals boven<br />

gedaan voor M1. Verklein <strong>de</strong>ze grammatica door overbodige productieregels en hulpsymbolen<br />

weg te laten.<br />

Oplossing: Introduceer S voor q0, A voor q1, B voor q2 en C voor q3.<br />

S → aA | bC<br />

A → bA | aB<br />

B → aC | bB | λ<br />

C → aC | bC<br />

Omdat A, B en C recursief naar zichzelf verwijzen, kun je die niet elimineren door substitutie.<br />

Echter, omdat elke productie die naar C gaat nooit tot een woord dat geaccepteerd wordt zal<br />

lei<strong>de</strong>n, kan <strong>de</strong>ze C weggelaten wor<strong>de</strong>n zon<strong>de</strong>r dat <strong>de</strong> taal die bij <strong>de</strong> grammatica hoort wijzigt.<br />

Je krijgt dan:<br />

S → aA<br />

A → bA | aB<br />

B → bB | λ<br />

Opgave 3.Q Maak een eindige automaat die <strong>de</strong> taal <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> grammatica accepteert.<br />

S → abS | aA | bB<br />

A → aA | λ<br />

B → bB | λ<br />

Oplossing: Eerst eens kijken welke woor<strong>de</strong>n er zoal geproduceerd kunnen wor<strong>de</strong>n: a,<br />

aa, aaa, b, bb, bbb, aba, abaa, abaaa, abb, abbb, abbb, ababa, ababaa, ababaaa, ababb, ababbb,<br />

ababbbb,. . . . De taal waar <strong>het</strong> hier om gaat lijkt dan ook <strong>de</strong> taal L((ab) ∗ (aa ∗ ∪ bb ∗ )) te zijn.<br />

Een automaat die diezelf<strong>de</strong> taal accepteert is:<br />

b<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

q0<br />

a<br />

b<br />

q1<br />

a<br />

q2 a<br />

b<br />

q3<br />

a<br />

q4<br />

b<br />

a,b<br />

32


Opgave 3.R Bekijk <strong>de</strong> eindige automaat M3:<br />

M3 :<br />

b<br />

<br />

<br />

q0 <br />

<br />

b<br />

a<br />

b<br />

<br />

q1<br />

a<br />

<br />

q2<br />

<br />

Maak een rechtslineaire grammatica die L(M3) genereert.<br />

Oplossing: Eerst weer eens kijken welke woor<strong>de</strong>n allemaal geaccepteerd wor<strong>de</strong>n: λ, b, bb,<br />

bbb, ab, abab, bab, bbab, aab, aaab, aaaab, . . . . Is dit misschien <strong>de</strong> taal <strong>van</strong> alle woor<strong>de</strong>n die<br />

niet op een a eindigen? Introduceer weer S voor q0, A voor q1 en B voor q2 en je krijgt <strong>de</strong><br />

grammatica:<br />

S → bS | aA | λ<br />

A → bS | aB<br />

B → bS | aB<br />

Opvallend is dat <strong>de</strong> laatste twee regels min of meer <strong>het</strong>zelf<strong>de</strong> zijn. Als je hier goed over<br />

na<strong>de</strong>nkt, kun je inzien dat je <strong>de</strong> grammatica kunt reduceren tot:<br />

S → bS | aA | λ<br />

A → bS | aA<br />

En als je dan nog ver<strong>de</strong>r na<strong>de</strong>nkt zie je dat <strong>de</strong> simpelere automaat<br />

M ′ 3 :<br />

<strong>de</strong>zelf<strong>de</strong> taal accepteert als M3.<br />

b<br />

<br />

<br />

q0<br />

Opgave 3.S Bekijk <strong>de</strong> eindige automaat M4:<br />

M4 :<br />

b<br />

<br />

<br />

q0<br />

(i) Maak een rechtslineaire grammatica die L(M4) genereert.<br />

Oplossing:<br />

<br />

<br />

a<br />

b<br />

a<br />

S → bS | aA<br />

A → aA | bS | λ<br />

(ii) Geef een (eenvoudige) beschrijving <strong>van</strong> L(M4).<br />

Oplossing: Door sterk te letten op <strong>de</strong> structuur <strong>van</strong> <strong>de</strong> automaat kom je al snel tot<br />

<strong>de</strong>ze beschrijving: {b k aa l (bb m aa n ) p | k, l, m, n, p ≥ 0} of L(b ∗ aa ∗ (bb ∗ aa ∗ ) ∗ ). Echter, als<br />

je wat ver<strong>de</strong>r kijkt, zie je dat <strong>de</strong> taal L(M4) eigenlijk gekarakteriseerd wordt door <strong>het</strong><br />

feit dat <strong>het</strong> laatste symbool een a moet zijn. Maar dat betekent dat <strong>de</strong> taal ook zo kan<br />

wor<strong>de</strong>n beschreven: L(M4) = L((a ∪ b) ∗ a).<br />

33<br />

b<br />

<br />

<br />

q1<br />

q1<br />

<br />

<br />

a<br />

a<br />

a


(iii) Als we alle toestan<strong>de</strong>n eindtoestand maken, welke taal accepteert M4 dan?<br />

Oplossing: {a, b} ∗ (alle woor<strong>de</strong>n over {a, b}).<br />

(iv) Als we <strong>de</strong> eindtoestan<strong>de</strong>n en <strong>de</strong> niet-eindtoestan<strong>de</strong>n omwisselen, welke taal accepteert<br />

M4 dan?<br />

Oplossing: Het complement <strong>van</strong> L(M4), dwz. alle woor<strong>de</strong>n over {a, b} die niet in<br />

L(M4) zitten. Uit <strong>de</strong> structuur <strong>van</strong> <strong>de</strong> automaat volgt <strong>de</strong> beschrijving: {b k (aa l bb m ) p |<br />

k, l, m, p ≥ 0}. In termen <strong>van</strong> reguliere expressies krijgen we dan <strong>de</strong> beschrijving<br />

L(b ∗ (aa ∗ bb ∗ ) ∗ ). Echter, als we even herinneren dat L(M4) = L((a ∪ b) ∗ a), dan is <strong>het</strong><br />

complement natuurlijk alles dat niet op een a eindigt. Dus wat op een b eindigt of λ.<br />

Dus een simpelere beschrijving voor <strong>het</strong> complement <strong>van</strong> L(M4) is L((a ∪ b) ∗ b ∪ λ).<br />

Opgave 3.T Maak een eindige automaat die <strong>de</strong> taal L15 := {(ab) k (aba) l | k, l ≥ 0} over<br />

Σ = {a, b} accepteert.<br />

Oplossing: Deze opgave staat bekend als een erg lastige opgave!<br />

<br />

q0<br />

q7<br />

<br />

a<br />

a <br />

b<br />

b<br />

b<br />

q6 <br />

a<br />

q2<br />

a<br />

<br />

<br />

<br />

<br />

q1 <br />

<br />

a,b<br />

b<br />

<br />

a<br />

b <br />

q3<br />

<br />

Hoe vind je nu zo’n automaat? Een combinatie <strong>van</strong> na<strong>de</strong>nken en proberen om zo min mogelijk<br />

toestan<strong>de</strong>n toe te voegen. Een reconstructie:<br />

1. λ ∈ L15 dus begintoestand q0 moet tevens eindtoestand zijn.<br />

2. q0 b → . . . ? Merk op dat woor<strong>de</strong>n <strong>uit</strong> L15 nooit met een b beginnen, dus weten we meteen<br />

dat er een put q1 nodig is met q0 b → q1.<br />

3. q0 a → . . . ? Omdat a ∈ L15 moet er een nieuwe toestand q2 gemaakt wor<strong>de</strong>n die geen<br />

eindtoestand is en q0 a → q2.<br />

4. q1 a → q1 en q1 b → q1 want q1 is <strong>de</strong> put.<br />

5. q2 a → . . . ? Omdat woor<strong>de</strong>n nooit met aa beginnen, moet a naar <strong>de</strong> put, dus q2 a → q1.<br />

6. q2 b → . . . ? Omdat ab ∈ L15 moet b naar een eindtoestand: q0 of een nieuwe.<br />

• Als q2 b → q0 dan wordt aba niet geaccepteerd, dus dat kan niet.<br />

Er moet dus een nieuwe eindtoestand q3 wor<strong>de</strong>n toegevoegd: q2 b → q3.<br />

7. q3 a → . . . ? Omdat aba ∈ L15 moet a naar een eindtoestand: q0, q3 of een nieuwe.<br />

• Als q3 a → q0 dan wordt abaab geaccepteerd, terwijl abaab ∈ L15, dus dat kan niet.<br />

34<br />

b<br />

q5<br />

<br />

a<br />

a<br />

<br />

q4<br />

b


• Als q3 a → q3 dan wordt abaa geaccepteerd, terwijl abaa ∈ L15, dus dat kan ook<br />

niet.<br />

Er moet dus een nieuwe eindtoestand q4 wor<strong>de</strong>n toegevoegd: q3 a → q4.<br />

8. q3 b → . . . ? Omdat woor<strong>de</strong>n nooit met abb beginnen, moet b naar <strong>de</strong> put: q3 b → q1.<br />

9. q4 a → . . . ? Omdat abaa ∈ L15 mag a niet naar een eindtoestand en omdat abaaba ∈ L15<br />

mag a niet naar <strong>de</strong> put. Dus naar q2 of naar een nieuwe niet-eindtoestand.<br />

• Als q4 a → q2 dan wordt abaab geaccepteerd, terwijl abaab ∈ L15, dus dat kan niet.<br />

Er moet dus een nieuwe niet-eindtoestand q5 wor<strong>de</strong>n toegevoegd: q4 a → q5.<br />

10. q4 b → . . . ? Omdat abab ∈ L15 moet b naar een eindtoestand: q0, q3, q4 of een nieuwe.<br />

• Als q4 b → q0 dan wordt ababaaba naar <strong>de</strong> put gestuurd, terwijl ababaaba ∈ L15, dus<br />

dat kan niet.<br />

• Als q4 b → q3 dan zijn er geen problemen, dus laten we dit maar proberen en kijken<br />

of we <strong>de</strong> automaat af kunnen maken.<br />

Dus q4 b → q3.<br />

11. q5 a → . . . ? Omdat woor<strong>de</strong>n nooit met abaaa beginnen, moet a naar <strong>de</strong> put: q5 a → q1.<br />

12. q5 b → . . . ? Omdat abaab ∈ L15, moet b naar een niet-eindtoestand. Omdat abaaba ∈<br />

L15, mag b niet naar <strong>de</strong> put. Dus <strong>de</strong> kandidaten zijn: q2, q5 of een nieuwe nieteindtoestand.<br />

• Als q5 b → q2 dan wordt abaabb geaccepteerd, terwijl abaabb ∈ L15, dus dat kan niet.<br />

• Als q5 b → q5 dan wordt abaaba naar <strong>de</strong> put gestuurd, terwijl abaaba ∈ L15, dus dat<br />

kan ook niet.<br />

Er moet dus een nieuwe niet-eindtoestand q6 wor<strong>de</strong>n toegevoegd: q5 b → q6.<br />

13. q6 a → . . . ? Omdat abaaba ∈ L15 moet a naar een eindtoestand: q0, q3, q4 of een nieuwe.<br />

14. q6<br />

• Als q6 a → q0 dan wordt abaabaab geaccepteerd, terwijl abaabaab ∈ L15, dus dat kan<br />

niet.<br />

• Als q6 a → q3 dan wordt weer abaabaab geaccepteerd, terwijl abaabaab ∈ L15, dus<br />

dat kan ook niet.<br />

• Als q6 a → q4 dan wordt abaababa geaccepteerd, terwijl abaababa ∈ L15, dus dat kan<br />

ook niet.<br />

Er moet dus een nieuwe eindtoestand q7 wor<strong>de</strong>n toegevoegd: q6 a → q7.<br />

b<br />

→ . . . ? Omdat woor<strong>de</strong>n nooit met abaabb kunnen beginnen, moet b naar <strong>de</strong> put:<br />

q6 b → q1.<br />

15. q7 a → . . . ? Omdat abaabaa ∈ L15 moet a naar een niet-eindtoestand: q2, q5, q6 of een<br />

nieuwe.<br />

35


16. q7<br />

• Als q7 a → q2 dan wordt abaabaab geaccepteerd, terwijl abaabaab ∈ L15, dus dat kan<br />

niet.<br />

• Als q7 a → q5 dan zijn er geen problemen. Je kunt hier dan meteen <strong>de</strong> loop <strong>van</strong> <strong>de</strong><br />

laatste aba-blokken herkennen.<br />

Dus q7 a → q5.<br />

b<br />

→ . . . ? Omdat woor<strong>de</strong>n nooit beginnen met abaabab, moet b naar <strong>de</strong> put. Dus<br />

q7 b → q1.<br />

En nu hebben we een geldige automaat waar precies <strong>de</strong> juiste woor<strong>de</strong>n in wor<strong>de</strong>n geaccepteerd!<br />

Opgave 3.U Maak een eindige automaat die <strong>de</strong> taal L16 := {(ab) k x(ab) l | x ∈ {a, b}, k, l ≥<br />

0} over Σ = {a, b} accepteert.<br />

Oplossing: Deze is waarschijnlijk iets makkelijker dan <strong>de</strong> vorige, maar <strong>de</strong>sondanks nog<br />

vrij lastig. (Ga voor jezelf na dat woor<strong>de</strong>n <strong>van</strong> <strong>de</strong> vorm (ab) k a(ab) l en (ab) k b(ab) l in<strong>de</strong>rdaad<br />

geaccepteerd wor<strong>de</strong>n.)<br />

<br />

q0<br />

<br />

b<br />

<br />

q1<br />

a<br />

b <br />

q2<br />

<br />

a<br />

<br />

b<br />

q3<br />

<br />

b<br />

a<br />

b<br />

a<br />

<br />

q4<br />

a<br />

<br />

<br />

<br />

q5<br />

<br />

Hoe vind je <strong>de</strong>ze automaat nu? We gebruiken hier een an<strong>de</strong>re metho<strong>de</strong> dan bij opgave 3.T.<br />

In <strong>het</strong> <strong>dictaat</strong> staat al beschreven hoe je <strong>van</strong><strong>uit</strong> een rechtslineaire grammatica vrij eenvoudig<br />

een <strong>de</strong>terministische automaat kunt maken. Dus beginnen we hier ook maar met <strong>het</strong> maken<br />

<strong>van</strong> zo’n rechtslineaire grammatica.<br />

S → abS | aA | bA<br />

A → abA | λ<br />

Helaas werkt <strong>het</strong> algoritme <strong>uit</strong> <strong>het</strong> <strong>dictaat</strong> niet direct. Dat komt doordat er overlap is: <strong>de</strong> a is<br />

zowel <strong>het</strong> begin <strong>van</strong> abS als <strong>van</strong> aA. Dus zorgen we ervoor dat we een equivalente grammatica<br />

maken waar die overlap is verdwenen door een extra hulpsymbool in te voeren.<br />

S → aP | bA<br />

P → bS | A<br />

A → abA | λ<br />

Helaas hebben we nu een overgang P → A geïntroduceerd en dan werkt <strong>het</strong> algoritme ook<br />

niet. Dus ver<strong>van</strong>gen we <strong>de</strong> grammatica weer door een equivalente grammatica.<br />

S → aP | bA<br />

P → bS | abA | λ<br />

A → abA | λ<br />

Ga na dat <strong>de</strong>ze in<strong>de</strong>rdaad equivalent is! De grammatica die we nu hebben is <strong>van</strong> <strong>de</strong> goe<strong>de</strong><br />

vorm en we kunnen dus <strong>het</strong> algoritme erop los laten door voor elk hulpsymbool een toestand<br />

36<br />

a,b


te maken (S → q0, P → q1 en A → q2).<br />

<br />

q0<br />

<br />

b<br />

<br />

q1<br />

a<br />

b <br />

q2 ab<br />

<br />

<br />

Vervolgens breken we <strong>de</strong> woor<strong>de</strong>n bij <strong>de</strong> pijlen op door extra toestan<strong>de</strong>n te maken:<br />

<br />

q0<br />

<br />

b<br />

<br />

q1<br />

a<br />

ab<br />

b <br />

q2<br />

<br />

a<br />

En als we nu nog een put toevoegen krijgen we precies <strong>de</strong> automaat die we hierboven al<br />

had<strong>de</strong>n laten zien.<br />

a<br />

<br />

b<br />

q0 <br />

<br />

q2 <br />

q4<br />

<br />

<br />

b<br />

b a b<br />

a<br />

<br />

b<br />

<br />

<br />

q1 <br />

q3 <br />

q5 a,b<br />

a<br />

a <br />

Echter, er is nog een kleinere automaat die <strong>de</strong>zelf<strong>de</strong> taal voortbrengt. Als we namelijk naar<br />

<strong>de</strong> toestan<strong>de</strong>n q3 en q4 kijken dan zien we dat ze precies <strong>de</strong>zelf<strong>de</strong> <strong>uit</strong>gaan<strong>de</strong> pijlen hebben:<br />

een a-pijl naar put q5 en een b-pijl naar q2. Maar dat betekent dat we die twee toestan<strong>de</strong>n<br />

ook samen mogen nemen, zon<strong>de</strong>r dat <strong>de</strong> taal veran<strong>de</strong>rt.<br />

<br />

q0<br />

<br />

b<br />

<br />

q1<br />

a<br />

<br />

b <br />

q2<br />

<br />

a<br />

b<br />

q3<br />

<br />

a<br />

b<br />

b a<br />

<br />

b<br />

<br />

<br />

q3 <br />

q5<br />

a<br />

NB: Indien je op <strong>de</strong>zelf<strong>de</strong> manier te werk was gegaan als beschreven bij opgave 3.T dan had<br />

je meteen <strong>de</strong>ze kleinere automaat gekregen.<br />

Opgave 3.V Bekijk <strong>de</strong> automaat M5 die (input) getallen in ‘normale’ <strong>de</strong>cimale notatie accepteert.<br />

Zo’n getal mag eventueel beginnen met een + of een −, maar niet met een 0, behalve<br />

natuurlijk als <strong>het</strong> <strong>van</strong> <strong>de</strong> vorm 0, 5 is, want dan is <strong>het</strong> weer wel goed. In <strong>het</strong> diagram staat<br />

0 . . . 9 voor één <strong>van</strong> <strong>de</strong> cijfers <strong>uit</strong> 0 t/m 9 enz.<br />

M5 :<br />

<br />

q0<br />

1...9<br />

<br />

<br />

q3<br />

<br />

0...9<br />

0 <br />

q1 <br />

+− 0<br />

<br />

1...9<br />

q2<br />

37<br />

,<br />

<br />

q4<br />

<br />

,<br />

a,b<br />

<br />

<br />

q4 0...9


(i) Vind je <strong>de</strong> automaat M5 goed? Wor<strong>de</strong>n alle ‘juiste’ getallen geaccepteerd en alle ‘foute’<br />

verworpen?<br />

Oplossing: Nee, <strong>de</strong> automaat is niet goed. Om te beginnen is hij niet <strong>de</strong>terministisch:<br />

er ontbreekt een put om bijvoorbeeld <strong>van</strong><strong>uit</strong> q0 een komma te kunnen verwerken.<br />

Daarnaast accepteert <strong>de</strong> automaat ook nog eens vreem<strong>de</strong> getallen: bijvoorbeeld ‘+0’,<br />

‘-0’ en ‘+37,’. Zijn getallen zon<strong>de</strong>r komma in <strong>de</strong>cimale notatie? En kan een getal in<br />

<strong>de</strong>cimale notatie met een komma eindigen? Hier staan we dat niet toe, maar je kunt<br />

daarover <strong>van</strong> mening verschillen. Als jij hier an<strong>de</strong>rs over <strong>de</strong>nkt, zorg dan dat jouw<br />

automaat overeenkomt met jouw i<strong>de</strong>e over <strong>de</strong>cimale getallen.<br />

(ii) Pas M5 aan als je <strong>het</strong> er niet mee eens bent.<br />

Oplossing: Er moeten verschillen<strong>de</strong> problemen wor<strong>de</strong>n opgelost:<br />

• Om te voorkomen dat getallen op een komma kunnen eindigen: voeg een toestand<br />

q5 toe waar <strong>de</strong> ‘komma’ pijlen <strong>uit</strong> q1 en q3 naar toe wijzen en <strong>van</strong> q5 naar q4 een<br />

0 . . . 9 pijl.<br />

• Om te voorkomen dat er getallen zon<strong>de</strong>r komma wor<strong>de</strong>n geaccepteerd: zorg dat q1<br />

en q3 niet langer eindtoestan<strong>de</strong>n zijn.<br />

• Tenslotte moet er een put wor<strong>de</strong>n toegevoegd: maak een nieuwe q6 waar alle<br />

‘verbo<strong>de</strong>n’ symbolen naar toe gaan.<br />

M5 ′ :<br />

<br />

q0<br />

1...9<br />

0 <br />

q1 <br />

+− 0<br />

<br />

q2<br />

<br />

1...9<br />

<br />

<br />

q3 , <br />

q5<br />

<br />

0...9<br />

,<br />

,<br />

+−,<br />

+−0...9 <br />

<br />

q6 <br />

<br />

<br />

<br />

+−,<br />

0...9<br />

<br />

+−,<br />

q4 0...9<br />

<br />

+−<br />

<br />

+−,0...9<br />

(iii) Geef een rechtslineaire grammatica die <strong>de</strong>zelf<strong>de</strong> taal als M5 genereert.<br />

Oplossing: De volgen<strong>de</strong> grammatica accepteert precies <strong>de</strong> taal <strong>van</strong> <strong>de</strong> originele M5,<br />

dus inclusief <strong>de</strong> foute getallen als ‘+37,’.<br />

S → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B | +C | −C<br />

A → , D | λ<br />

B → , D | λ | 0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B<br />

C → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B<br />

D → λ | 0D | 1D | 2D | 3D | 4D | 5D | 6D | 7D | 8D | 9D<br />

38


En voor M5 ′ wordt <strong>het</strong>:<br />

S → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B | +C | −C<br />

A → , D<br />

B → , D | 0B | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B<br />

C → 0A | 1B | 2B | 3B | 4B | 5B | 6B | 7B | 8B | 9B<br />

D → 0E | 1E | 2E | 3E | 4E | 5E | 6E | 7E | 8E | 9E<br />

E → λ | 0E | 1E | 2E | 3E | 4E | 5E | 6E | 7E | 8E | 9E<br />

39


4 Discrete wiskun<strong>de</strong><br />

Opgave 4.A Bewijs dat er in een boom <strong>van</strong> een punt p naar een an<strong>de</strong>r punt q precies één<br />

pad bestaat.<br />

Oplossing: Deze opgave is nagenoeg geheel gebaseerd op <strong>de</strong>finitie 4.2. Volgens die <strong>de</strong>finitie<br />

is een boom een samenhangen<strong>de</strong> graaf zon<strong>de</strong>r cykels. We moeten twee beweringen bewijzen:<br />

• Er is minimaal één pad <strong>van</strong> p naar q.<br />

• Er is maximaal één pad <strong>van</strong> p naar q.<br />

Het eerste volgt meteen <strong>uit</strong> <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> samenhangend: tussen ie<strong>de</strong>r tweetal punten<br />

bestaat een pad. Dus ook tussen onze punten p en q.<br />

Het twee<strong>de</strong> is makkelijk in te zien, maar moeilijk helemaal precies te bewijzen. Een<br />

gebruikelijke techniek om aan te tonen dat er maximaal één pad is, is om aan te nemen dat<br />

er twee verschillen<strong>de</strong> pa<strong>de</strong>n zijn en dan tot een tegenspraak te komen:<br />

p = x0 → x1 → x2 → · · · → xn−1 → xn = q en p = y0 → y1 → y2 → · · · → ym−1 → ym = q<br />

We proberen aan te tonen dat we hiermee een cykel kunnen maken, wat een tegenspraak is.<br />

Het eenvoudige argument dat we dan dus ook een cykel<br />

p = x0 → x1 → x2 → · · · → xn−1 → xn = q = ym → ym−1 → ym−2 → · · · → y1 → y0 = p<br />

hebben, gaat niet op omdat dit misschien geen pad is. Volgens <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> pa<strong>de</strong>n mogen<br />

we elke lijn maar één keer doorlopen in een pad en dat is hier niet gegaran<strong>de</strong>erd. Bekijk maar<br />

eens <strong>het</strong> volgen<strong>de</strong> plaatje.<br />

b<br />

p a d q<br />

c<br />

Er zijn dui<strong>de</strong>lijk twee pa<strong>de</strong>n p → a → b → d → q en p → a → c → d → q, maar als je ze<br />

achter elkaar zet krijg je<br />

p → a → b → d → q → d → c → a → p<br />

en daarin komen <strong>de</strong> lijnen (p, a) en (d, q) twee keer voor en dus is <strong>het</strong> geen pad en dus ook<br />

geen cykel. Maar door <strong>de</strong> dubbelvoorkomen<strong>de</strong> lijnen weg te laten kun je wel altijd een cykel<br />

vin<strong>de</strong>n. Hier bijvoorbeeld<br />

a → b → d → c → a<br />

En dus hebben we toch een tegenspraak. In <strong>het</strong> bijzon<strong>de</strong>r is <strong>het</strong> niet nodig dat onze tegenvoorbeeldcykel<br />

door <strong>de</strong> speciale punten p en q gaat! Het algemene bewijs is te lastig en laten<br />

we daarom weg. We volstaan met <strong>het</strong> i<strong>de</strong>e om zo’n cykel te construeren:<br />

• Verwij<strong>de</strong>r <strong>het</strong> gemeenschappelijke beginstuk <strong>van</strong> <strong>de</strong> twee pa<strong>de</strong>n zodat je in een p ′ begint<br />

waar <strong>de</strong> twee pa<strong>de</strong>n meteen in <strong>de</strong> eerste stap verschillend zijn. Je hebt dan dus nog<br />

steeds twee pa<strong>de</strong>n, alleen nu <strong>van</strong> p ′ naar q.<br />

40


• Bepaal <strong>het</strong> eerste punt waar <strong>de</strong> twee pa<strong>de</strong>n elkaar weer kruisen. Omdat dat in elk geval<br />

in q gebeurt, weet je zeker dat <strong>het</strong> een keer moet gebeuren. Noem dit punt q ′ . We<br />

hebben dan twee pa<strong>de</strong>n <strong>van</strong> p ′ naar q ′ .<br />

• Omdat we p ′ en q ′ op <strong>de</strong>ze manier geconstrueerd hebben, weten we nu dat we wel een<br />

echt pad krijgen als we eerst <strong>het</strong> ene pad <strong>van</strong> p ′ naar q ′ nemen en er vervolgens <strong>het</strong><br />

twee<strong>de</strong> pad achterstevoren, dus <strong>van</strong> q ′ naar p ′ achter plakken.<br />

• In <strong>het</strong> bijzon<strong>de</strong>r is dit pad een cykel en dus kunnen we geen boom hebben als er twee<br />

pa<strong>de</strong>n tussen p en q bestaan. Dus kan er maximaal één zo’n pad bestaan.<br />

Opgave 4.B Een brug in een graaf G is een lijn l waarvoor geldt: als je l <strong>uit</strong> G weglaat,<br />

wordt <strong>het</strong> aantal componenten verhoogd. Bewijs dat in een boom ie<strong>de</strong>re lijn een brug is.<br />

Oplossing: Kies maar eens een willekeurige lijn. Die lijn verbindt twee punten p en q<br />

en is dus in <strong>het</strong> bijzon<strong>de</strong>r een pad <strong>van</strong> p naar q. Op grond <strong>van</strong> opgave 4.A weten we nu dat<br />

als we <strong>de</strong>ze lijn weghalen, daarmee <strong>het</strong> enige pad tussen p en q is verdwenen. Dus zitten p<br />

en q niet meer in <strong>de</strong>zelf<strong>de</strong> component en is door <strong>het</strong> weghalen <strong>het</strong> aantal componenten dus<br />

verhoogd. Dus was <strong>de</strong>ze willekeurige lijn een brug. Maar dan is elke lijn in een boom dus een<br />

brug.<br />

Opgave 4.C Bewijs dat voor alle n ≥ 1 geldt dat <strong>de</strong> Kn precies 1<br />

2n(n − 1) lijnen heeft.<br />

Oplossing: Elk punt in Kn heeft graad n − 1. Dus <strong>van</strong><strong>uit</strong> elk punt vertrekken er n − 1<br />

lijnen. Er zijn n punten, dus op die manier tellen we n(n − 1) lijnen. Echter, omdat elk punt<br />

zowel beginpunt als eindpunt is, hebben we nu alle lijnen dubbel geteld. Dus <strong>het</strong> aantal lijnen<br />

n(n − 1).<br />

in Kn is 1<br />

2<br />

Opgave 4.D Ga na welke <strong>van</strong> <strong>de</strong> on<strong>de</strong>rstaan<strong>de</strong> grafen isomorf zijn:<br />

G1 G2 G3<br />

1 2 5 6 a b<br />

3 4 7 8 c d<br />

Als twee grafen isomorf zijn, geef dan een bijbehorend isomorfisme. En als twee grafen<br />

niet isomorf zijn, leg dan <strong>uit</strong> waarom zo’n isomorfisme niet kan bestaan.<br />

Oplossing: Isomorfe grafen hebben evenveel punten met <strong>de</strong>zelf<strong>de</strong> gra<strong>de</strong>n. In G2 hebben<br />

alle punten graad 2, in <strong>de</strong> an<strong>de</strong>re twee grafen niet. Dus G2 is niet isomorf met <strong>de</strong> an<strong>de</strong>re twee<br />

grafen. G1 en G3 zijn wel isomorf: een isomorfisme is 1 ↦→ b, 2 ↦→ a, 3 ↦→ c en 4 ↦→ d.<br />

Opgave 4.E Hier is een plattegrond G <strong>van</strong> een dorpje, waarbij <strong>de</strong> straten aangegeven wor<strong>de</strong>n<br />

door lijntjes. Op ie<strong>de</strong>r hoekpunt bevindt zich een kroeg. De kroegen zijn aangegeven door<br />

punten, genummerd <strong>van</strong> 1 t/m 12:<br />

11 12<br />

1 2 3 4 5 6 7<br />

8 9 10<br />

41


Formuleer <strong>de</strong> volgen<strong>de</strong> vragen in termen <strong>van</strong> Hamilton- of Euler-circ<strong>uit</strong>s/pa<strong>de</strong>n en beantwoord<br />

ze:<br />

(i) Is <strong>het</strong> mogelijk, een wan<strong>de</strong>ling te maken waarbij je ie<strong>de</strong>re straat precies één keer doorloopt?<br />

Zo ja, geef dan zo’n wan<strong>de</strong>ling. Zo nee, leg <strong>uit</strong> waarom niet.<br />

Oplossing: Een wan<strong>de</strong>ling waarbij je ie<strong>de</strong>re straat–dus ie<strong>de</strong>r lijntje–precies één keer<br />

doorloopt is een Euler-pad. De vraag is dus eigenlijk of er een Euler-pad bestaat. Met<br />

stelling 4.13 is dit makkelijk te beantwoor<strong>de</strong>n. Hiervoor moeten we <strong>de</strong> gra<strong>de</strong>n <strong>van</strong> <strong>de</strong><br />

kroegen–<strong>de</strong> punten–bepalen.<br />

punt graad punt graad punt graad punt graad<br />

1 2 4 4 7 3 10 3<br />

2 4 5 4 8 4 11 4<br />

3 4 6 4 9 2 12 4<br />

Alleen <strong>de</strong> punten 7 en 10 hebben oneven graad, dus volgens <strong>de</strong> stelling <strong>van</strong> Euler bestaat<br />

er een Euler-pad. Een concreet voorbeeld <strong>van</strong> zo’n pad is: 7, 12, 5, 10, 7, 6, 12, 11, 4,<br />

8, 1, 2, 11, 3, 9, 8, 2, 3, 4, 5, 6, 10.<br />

(ii) Is <strong>het</strong> mogelijk, een wan<strong>de</strong>ling te maken waarbij je ie<strong>de</strong>re straat precies één keer doorloopt<br />

en bovendien begint en eindigt bij kroeg 3? Zo ja, geef dan zo’n wan<strong>de</strong>ling. Zo<br />

nee, leg <strong>uit</strong> waarom niet.<br />

Oplossing: Nu is <strong>de</strong> vraag eigenlijk of er een Euler-cykel bestaat. Het antwoord daarop<br />

komt weer <strong>uit</strong> <strong>de</strong> stelling <strong>van</strong> Euler. Die stelt dat een Euler-cykel alleen bestaat als elk<br />

punt een even graad heeft. We hebben al gezien dat dat hier niet <strong>het</strong> geval is en dus<br />

bestaat er geen Euler-cykel. (En zeker geen die begint en eindigt bij punt 3.)<br />

(iii) Bestaat er een kroegentocht waarin ie<strong>de</strong>re kroeg precies één keer voorkomt? Zo ja, geef<br />

dan zo’n tocht. Zo nee, leg <strong>uit</strong> waarom niet.<br />

Oplossing: Nu gaat <strong>de</strong> wan<strong>de</strong>ling door alle punten en gaat <strong>het</strong> dus om <strong>de</strong> vraag<br />

of er een Hamilton-pad bestaat. Zo’n pad bestaat in<strong>de</strong>rdaad. Neem bijvoorbeeld<br />

12,7,10,6,5,4,11,3,9,8,1,2.<br />

Opgave 4.F Hieron<strong>de</strong>r vind je twee plattegron<strong>de</strong>n <strong>van</strong> huizen.<br />

(i) Teken bij elke plattegrond <strong>de</strong> bijbehoren<strong>de</strong> graaf, waarbij je <strong>de</strong> vertrekken (inclusief <strong>het</strong><br />

b<strong>uit</strong>engebied) door punten voorstelt en <strong>de</strong> <strong>de</strong>uren door lijnen. Be<strong>de</strong>nk dat punten in<br />

een graaf een naam moeten hebben!<br />

Oplossing:<br />

42


a b<br />

d<br />

e<br />

g<br />

c<br />

f<br />

a<br />

e<br />

b<br />

c d<br />

(ii) Zoek voor elk huis <strong>uit</strong> of <strong>het</strong> mogelijk is een rondwan<strong>de</strong>lingetje te maken waarin je ie<strong>de</strong>re<br />

<strong>de</strong>ur precies één keer gebruikt en bij je <strong>uit</strong>gangspunt terugkeert. Verklaar je antwoord.<br />

Oplossing: Omdat <strong>de</strong> <strong>de</strong>uren overeenkomen met <strong>de</strong> lijnen in <strong>de</strong> graaf, wordt hier dus<br />

gevraagd of er een Euler-cykel is. Dus moeten we weer <strong>de</strong> gra<strong>de</strong>n gaan tellen.<br />

a b c d e f g<br />

Eerste huis 4 2 2 2 4 2 4<br />

Twee<strong>de</strong> huis 2 4 2 2 4<br />

In bei<strong>de</strong> huizen hebben alle punten een even graad, dus kun je volgens <strong>de</strong> stelling <strong>van</strong><br />

Euler (4.13) een Euler-cykel maken. Bijvoorbeeld a, g, d, a, b, e, f, c, g, e, a in <strong>het</strong> eerste<br />

huis en e, a, b, c, e, b, d, e in <strong>het</strong> twee<strong>de</strong> huis.<br />

(iii) Zoek voor elk huis <strong>uit</strong> of <strong>het</strong> mogelijk is een rondwan<strong>de</strong>lingetje te maken waarin je ie<strong>de</strong>r<br />

vertrek (en <strong>de</strong> tuin) precies één keer bezoekt en bij je <strong>uit</strong>gangspunt terugkeert. Verklaar<br />

je antwoord.<br />

Oplossing: Omdat <strong>de</strong> vertrekken met <strong>de</strong> punten overeenkomen wordt er nu dus om<br />

een Hamilton-circ<strong>uit</strong> gevraagd. Bij <strong>het</strong> eerste huis is zo’n pad wel mogelijk. Neem<br />

bijvoorbeeld g, d, a, b, e, f, c, g.<br />

In <strong>het</strong> twee<strong>de</strong> huis is zo’n pad niet mogelijk. In een Hamilton-circ<strong>uit</strong> moet namelijk<br />

ie<strong>de</strong>re lijn die aan een punt met graad twee ligt voorkomen (we moeten dat punt immers<br />

in en <strong>uit</strong>). Als we die lijnen ec, cb, ea, ab, ed en db tekenen, zien we dat we <strong>het</strong> circ<strong>uit</strong><br />

niet af kunnen maken. Zowel punt e als b komt in drie <strong>van</strong> <strong>de</strong>ze lijnen voor en in een<br />

Hamilton-circ<strong>uit</strong> mag elk punt maar in twee lijnen voorkomen.<br />

Opgave 4.G Welke <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> grafen hebben een Hamilton-circ<strong>uit</strong>? Verklaar je antwoord.<br />

a<br />

d<br />

g<br />

b<br />

e<br />

h<br />

c<br />

f<br />

i<br />

Oplossing: Bij <strong>de</strong> eerste graaf is er wel een Hamilton-circ<strong>uit</strong> mogelijk, bijvoorbeeld<br />

a, b, c, i, f, e, h, g, d, a:<br />

43<br />

a<br />

d<br />

g<br />

b<br />

e<br />

h<br />

c<br />

f<br />

i


a<br />

d<br />

g<br />

Bij <strong>de</strong> twee<strong>de</strong> graaf is <strong>het</strong> niet mogelijk om een Hamilton-circ<strong>uit</strong> te maken. Zoals we al bij<br />

opgave 4.F hebben gezien, moeten we over elke lijn die aan een punt <strong>van</strong> graad 2 ligt. We<br />

moeten dus over alle horizontale lijnen in <strong>het</strong> mid<strong>de</strong>n. Als we bij een punt links beginnen,<br />

gaan we dus eerst naar rechts, dan weer naar links, dan weer naar rechts, maar dan kunnen we<br />

helaas niet meer terug terwijl dat wel zou moeten voor een Hamilton-circ<strong>uit</strong>. Een Hamiltonpad<br />

is natuurlijk wel mogelijk: a, b, c, f, e, d, g, h, i.<br />

Opgave 4.H Zij G <strong>de</strong> kubus-graaf, met als P <strong>de</strong> verzameling <strong>van</strong> <strong>de</strong> acht hoekpunten, en<br />

als L <strong>de</strong> verzameling <strong>van</strong> <strong>de</strong> twaalf ribben.<br />

(i) Is G planair?<br />

Oplossing: Hieron<strong>de</strong>r zie je twee representaties <strong>van</strong> <strong>de</strong> kubus-graaf. Dat <strong>de</strong> graaf<br />

planair is volgt overdui<strong>de</strong>lijk <strong>uit</strong> <strong>het</strong> twee<strong>de</strong> plaatje.<br />

H G<br />

E F<br />

D C<br />

A B<br />

b<br />

e<br />

h<br />

c<br />

f<br />

i<br />

E F<br />

H G<br />

D C<br />

A B<br />

(ii) Heeft G een Hamilton-circ<strong>uit</strong>?<br />

Oplossing: Ja, kijk maar naar A, B, F, E, H, G, C, D, A:<br />

E F<br />

H G<br />

D C<br />

A B<br />

(iii) Heeft G een Euler-circ<strong>uit</strong>?<br />

Oplossing: Nee, <strong>de</strong> graaf G heeft geen Euler-circ<strong>uit</strong> want alle punten hebben oneven<br />

graad terwijl <strong>de</strong> stelling <strong>van</strong> Euler juist zegt dat alle punten even graad moeten hebben<br />

wil er een Euler-circ<strong>uit</strong> bestaan.<br />

Verklaar telkens je antwoord!<br />

Opgave 4.I Laat zien dat <strong>de</strong> Petersen-graaf een Hamilton-pad heeft, maar geen Hamiltoncykel.<br />

Oplossing: Een Hamilton-pad is bijvoorbeeld ab, cd, ae, bc, <strong>de</strong>, ac, bd, ce, ad, be. Omdat er<br />

geen lijn is tussen ab en be kan dit pad in elk geval niet tot een circ<strong>uit</strong> wor<strong>de</strong>n <strong>uit</strong>gebreid.<br />

Dat er in <strong>het</strong> algemeen geen Hamilton-circ<strong>uit</strong> in <strong>de</strong> Petersen-graaf zit is moeilijk te bewijzen.<br />

Hier geven we een bewijs gebaseerd op kleuring. Dit moet te begrijpen zijn, maar<br />

44


<strong>het</strong> hoeft <strong>uit</strong>eraard niet op een toets of tentamen gereproduceerd te wor<strong>de</strong>n. We gaan <strong>de</strong><br />

Petersen-graaf in drie kleuren proberen te ver<strong>de</strong>len. Dat doen we door <strong>de</strong> lijnen die op <strong>het</strong><br />

circ<strong>uit</strong> liggen afwisselend rood en groen te kleuren en <strong>de</strong> lijnen die niet op <strong>het</strong> circ<strong>uit</strong> liggen<br />

blauw te kleuren. De Petersen-graaf heeft 10 punten en 15 lijnen. Een Hamilton-circ<strong>uit</strong> heeft<br />

dus 10 lijnen. We vin<strong>de</strong>n <strong>het</strong> een goe<strong>de</strong> kleuring als geen enkel punt twee lijnen met <strong>de</strong>zelf<strong>de</strong><br />

kleuren heeft. Dit betekent dus meteen dat er 5 ro<strong>de</strong>, 5 groene en 5 blauwe lijnen moeten<br />

zijn. Het bewijs dat er geen Hamilton-circ<strong>uit</strong> is, komt er op neer dat we laten zien dat zo’n<br />

kleuring niet bestaat.<br />

We bewijzen <strong>het</strong> <strong>uit</strong> <strong>het</strong> ongerijm<strong>de</strong>: we nemen aan dat <strong>het</strong> wel waar is en lei<strong>de</strong>n dan een<br />

tegenspraak af. Stel dat zo’n kleuring wel bestaat. Dan weten we zeker dat er <strong>van</strong> <strong>de</strong> vijf<br />

b<strong>uit</strong>enste lijnen ab<strong>de</strong>, <strong>de</strong>bc, bcae, aecd en cdab er minimaal twee <strong>de</strong>zelf<strong>de</strong> kleur hebben. (Om<br />

<strong>de</strong> simpele re<strong>de</strong>n dat je nu eenmaal geen vijf verschillen<strong>de</strong> kleuren hebt.) Zeg dat <strong>de</strong>bc en<br />

aecd allebei rood zijn. Door <strong>de</strong> graaf te draaien, kun je inzien dat <strong>het</strong> niet <strong>uit</strong>maakt welke<br />

twee lijnen je rood kiest. Ver<strong>de</strong>r kun je ook nagaan dat <strong>het</strong> niet <strong>uit</strong>maakt welke kleur je kiest.<br />

Deze twee ro<strong>de</strong> lijnen betekenen dat <strong>de</strong> lijn bcae automatisch een an<strong>de</strong>re kleur heeft. Zeg<br />

groen. Maar dat betekent dan ook meteen dat <strong>de</strong> twee lijnen bcad en aebd blauw moeten zijn.<br />

ab<br />

<strong>de</strong> ce<br />

cd<br />

ac be<br />

ad bd<br />

bc ae<br />

Kijken we nu ver<strong>de</strong>r in <strong>de</strong> b<strong>uit</strong>enste lijnen dan zien we dat ofwel <strong>de</strong> lijn ab<strong>de</strong> groen en <strong>de</strong> lijn<br />

cdab blauw moet zijn ofwel net an<strong>de</strong>rsom. In elk geval betekent dat dat <strong>de</strong> lijn abce rood<br />

moet zijn. De an<strong>de</strong>re twee kleuren zijn <strong>uit</strong> punt ab immers al gebruikt.<br />

ab<br />

<strong>de</strong> ce<br />

cd<br />

ac be<br />

ad bd<br />

bc ae<br />

Maar dan hebben we een probleem. De lijn cead moet groen zijn omdat hij tussen een ro<strong>de</strong><br />

en een blauwe lijn inzit. Maar net zo moet <strong>de</strong> lijn cebd groen zijn. En dan komen er dus twee<br />

groene en een ro<strong>de</strong> lijn samen in <strong>het</strong> punt ce.<br />

45


ab<br />

<strong>de</strong> ce<br />

cd<br />

ac be<br />

ad bd<br />

bc ae<br />

En dat mocht niet bij een goe<strong>de</strong> kleuring. Dus bestaat zo’n kleuring niet. En dus zit er ook<br />

geen Hamilton-circ<strong>uit</strong> in <strong>de</strong> Petersen-graaf.<br />

Opgave 4.J Bepaal <strong>het</strong> kleurgetal <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> grafen.<br />

Oplossing: De standaardtechniek om te laten zien dat een (eindige) graaf een bepaald<br />

kleurgetal heeft, is om zo’n kleuring te geven. En vervolgens dient dan te wor<strong>de</strong>n <strong>uit</strong>gelegd<br />

waarom <strong>het</strong> niet met min<strong>de</strong>r kleuren kan.<br />

Het is dui<strong>de</strong>lijk dat <strong>de</strong> linkergraaf niet met één kleur gekleurd kan wor<strong>de</strong>n, dus <strong>het</strong> kleurgetal<br />

is 2. Bij <strong>de</strong> rechtergraaf kunnen we in <strong>het</strong> mid<strong>de</strong>n <strong>de</strong> K4 zien zitten. Maar in <strong>de</strong> K4 zijn alle<br />

punten buren <strong>van</strong> elkaar en dus zijn daar vier kleuren voor nodig. En dus is <strong>het</strong> kleurgetal<br />

<strong>van</strong> <strong>de</strong> hele graaf ook 4.<br />

Opgave 4.K Laat zien dat als een bipartite graaf een Hamilton-pad toelaat <strong>het</strong> aantal ro<strong>de</strong><br />

en <strong>het</strong> aantal blauwe punten hoogstens één verschilt.<br />

46


Oplossing: Een bipartite graaf kun je altijd op<strong>de</strong>len in een aantal ro<strong>de</strong> punten en een<br />

aantal blauwe punten waarbij alle lijnen telkens een rood en een blauw punt met elkaar<br />

verbin<strong>de</strong>n. Een Hamilton-pad doet alle punten precies één keer aan. In een bipartite graaf<br />

betekent dat dat zo’n Hamilton-pad afwisselend een rood en een blauw punt aandoet, want<br />

er zijn immers geen directe verbindingen tussen punten met <strong>de</strong>zelf<strong>de</strong> kleur. Begin je met een<br />

rood punt dan eindig je ofwel met een blauw punt ofwel weer met een rood punt. In <strong>het</strong><br />

eerste geval heb je precies evenveel ro<strong>de</strong> als blauwe punten. In <strong>het</strong> twee<strong>de</strong> geval heb je exact<br />

één rood punt meer dan dat je blauwe punten hebt. Uiteraard werkt <strong>het</strong> argument <strong>het</strong>zelf<strong>de</strong><br />

als je begonnen was met een blauw punt.<br />

Opgave 4.L Op <strong>de</strong> Volksuniversiteit wor<strong>de</strong>n er heel wat vreem<strong>de</strong> talen aangebo<strong>de</strong>n: Arabisch,<br />

Bulgaars, Chinees, Deens, Egyptisch, Fries en Grieks. Bij <strong>het</strong> maken <strong>van</strong> <strong>het</strong> rooster<br />

voor <strong>de</strong> cursussen, moet <strong>de</strong> roostermaker met twee zaken rekeninghou<strong>de</strong>n:<br />

• Het gebouw met tien lokalen kan alleen in zijn geheel gehuurd wor<strong>de</strong>n, dus hoe meer cursussen<br />

er parallel gegeven kunnen wor<strong>de</strong>n, hoe goedkoper <strong>het</strong> voor <strong>de</strong> Volksuniversiteit<br />

is.<br />

• Sommige stu<strong>de</strong>nten hebben zich voor verschillen<strong>de</strong> cursussen ingeschreven en die betreffen<strong>de</strong><br />

talen mogen dus niet tegelijk gegeven wor<strong>de</strong>n. In on<strong>de</strong>rstaan<strong>de</strong> tabel betekent<br />

een ∗ op een bepaal<strong>de</strong> positie, dat <strong>de</strong> taal <strong>uit</strong> die rij niet mag samen vallen met <strong>de</strong> taal<br />

<strong>uit</strong> die kolom.<br />

A B C D E F G<br />

A * * * *<br />

B * * * * *<br />

C * * * *<br />

D * * * *<br />

E *<br />

F * * *<br />

G * * *<br />

Hoeveel verschillen<strong>de</strong> lesblokken zal <strong>de</strong> roostermaker gebruiken om aan bei<strong>de</strong> eisen te voldoen?<br />

Oplossing: Het minimale aantal verschillen<strong>de</strong> lesblokken komt overeen met <strong>het</strong> kleurgetal<br />

<strong>van</strong> <strong>de</strong> graaf waarbij <strong>de</strong> punten <strong>de</strong> talen weergeven en <strong>de</strong> lijnen aangeven welke talen er niet<br />

tegelijk mogen wor<strong>de</strong>n gegeven.<br />

We beginnen bij taal A en lopen door <strong>de</strong> tabel heen om alle lijnen te bepalen en zodra we<br />

weten dat we zeker een nieuwe kleur nodig hebben wijzen we zo’n kleur toe aan een taal. Op<br />

grond <strong>van</strong> symmetrie hoeven we alleen <strong>de</strong> helft rechtsboven te bekijken. Deze metho<strong>de</strong> zorgt<br />

ervoor dat we een minimale kleuring krijgen.<br />

• Taal A moet een kleur hebben: zwart.<br />

• A en B mogen niet samenvallen, dus B moet een an<strong>de</strong>re kleur hebben: rood.<br />

• A en C mogen niet samenvallen, dus C is niet zwart, maar kan misschien nog wel rood<br />

zijn.<br />

• A en D mogen niet samenvallen, dus D is niet zwart, maar kan misschien nog wel rood<br />

zijn.<br />

47


• A en G mogen niet samenvallen, dus G is niet zwart, maar kan misschien nog wel rood<br />

zijn.<br />

• B en C mogen niet samenvallen, dus C is niet zwart en niet rood, dus C moet een nieuwe<br />

kleur hebben: groen.<br />

• B en D mogen niet samenvallen, dus D is niet zwart en niet rood, maar kan misschien<br />

nog wel groen zijn.<br />

• B en E mogen niet samenvallen, dus E is niet rood, maar kan misschien nog wel zwart<br />

of groen zijn.<br />

• B en G mogen niet samenvallen, dus G is niet zwart en niet rood, maar kan misschien<br />

nog wel groen zijn.<br />

• C en D mogen niet samenvallen, dus D is niet zwart, niet rood en niet groen, dus D<br />

moet een nieuwe kleur krijgen: blauw.<br />

• C en F mogen niet samenvallen, dus F is niet groen, maar kan misschien nog wel zwart,<br />

rood of blauw zijn.<br />

• D en F mogen niet samenvallen, dus F is niet groen en niet blauw, maar kan misschien<br />

nog wel zwart of rood zijn.<br />

• Omdat E alleen maar niet mag samenvallen met B, weten we dat E zwart, groen of<br />

blauw mag zijn. We kiezen zwart.<br />

• F en G mogen niet samenvallen, dus G is niet zwart, niet rood en heeft ook niet <strong>de</strong>zelf<strong>de</strong><br />

kleur als F.<br />

• Er zijn ver<strong>de</strong>r geen beperkingen meer, dus hebben we nog wat vrijheid om <strong>de</strong> kleuren<br />

<strong>van</strong> F en G te kiezen. Zeg F wordt zwart en G groen.<br />

Uitein<strong>de</strong>lijk is <strong>de</strong> graaf dus met vier kleuren gekleurd: zwart voor Arabisch, Egyptisch en<br />

Fries, rood voor Bulgaars, groen voor Chinees en Grieks en blauw voor Deens.<br />

G F<br />

B C<br />

De roostermaker heeft dus vier verschillen<strong>de</strong> lesblokken nodig.<br />

Opgave 4.M Definieer met recursie <strong>de</strong> rij an door:<br />

A<br />

a0 = 3<br />

E<br />

D<br />

an+1 = a 2 n − 2an voor n ≥ 0<br />

48


Geef <strong>de</strong> waar<strong>de</strong> <strong>van</strong> a5.<br />

Oplossing:<br />

a1 = a 2 0 − 2a0 = 3 2 − 2 · 3 = 3<br />

a2 = a 2 1 − 2a1 = 3 2 − 2 · 3 = 3<br />

a3 = a 2 2 − 2a2 = 3 2 − 2 · 3 = 3<br />

a4 = a 2 3 − 2a3 = 3 2 − 2 · 3 = 3<br />

a5 = a 2 4 − 2a4 = 3 2 − 2 · 3 = 3<br />

Opgave 4.N Definieer met recursie <strong>de</strong> rij bn door:<br />

Geef <strong>de</strong> waar<strong>de</strong> <strong>van</strong> b5.<br />

Oplossing:<br />

b0 = 4<br />

bn+1 = b 2 n − 2bn voor n ≥ 0<br />

b1 = b 2 0 − 2b0 = 4 2 − 2 · 4 = 16 − 8 = 8<br />

b2 = b 2 1 − 2b1 = 8 2 − 2 · 8 = 64 − 16 = 48<br />

b3 = b 2 2 − 2b2 = 48 2 − 2 · 48 = 2304 − 96 = 2208<br />

b4 = b 2 3 − 2b3 = 2208 2 − 2 · 2208 = 4875264 − 4416 = 4870848<br />

b5 = b 2 4 − 2b4 = 4870848 2 − 2 · 4870848 = 23725160239104 − 9741696 = 23725150497408<br />

Opgave 4.O Bekijk <strong>de</strong> rij cn ge<strong>de</strong>finieerd door:<br />

1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, 2207, 3571, 5778, 9349, . . .<br />

Geef een recursieve formule voor cn.<br />

Oplossing: Vanaf <strong>het</strong> <strong>de</strong>r<strong>de</strong> getal is <strong>het</strong> telkens zo dat <strong>de</strong> twee voorgaan<strong>de</strong> getallen bij<br />

elkaar opgeteld <strong>het</strong> nieuwe getal geven. Er moeten dus twee startwaar<strong>de</strong>n gegeven wor<strong>de</strong>n en<br />

daarna kan <strong>de</strong> recursie gebruikt wor<strong>de</strong>n.<br />

c0 = 1<br />

c1 = 3<br />

cn+1 = cn + cn−1 voor n ≥ 1<br />

Opgave 4.P De Maple-programma’s <strong>uit</strong> voorbeeld 4.23 zijn niet erg robuust. Indien er voor<br />

m een niet natuurlijk getal of 0 wordt gebruikt, zal Maple in een oneindige lus terechtkomen.<br />

Probeer <strong>de</strong> programma’s zo aan te passen dat er een juiste <strong>uit</strong>komst wordt bepaald indien<br />

n, m ∈ Z.<br />

Oplossing: Als <strong>het</strong> goed is kun je volgen wat on<strong>de</strong>rstaan<strong>de</strong> programma’s doen. Wat<br />

betreft syntax kan <strong>het</strong> in Maple overigens wel korter wor<strong>de</strong>n opgeschreven, maar dat was hier<br />

niet <strong>het</strong> doel.<br />

49


multZ := proc (n ,m)<br />

i f m=0<br />

then 0<br />

else<br />

i f m


Opgave 4.R Gegeven is een rij an ge<strong>de</strong>finieerd door<br />

a0 = 0<br />

an+1 = an + 2n + 1 voor n ≥ 0<br />

Bewijs dat voor elke n ∈ N geldt: an = n 2 .<br />

Oplossing: We beginnen weer met <strong>het</strong> expliciet opschrijven <strong>van</strong> ons predikaat P (n).<br />

IH: Definieer P (n) als: an = n 2 .<br />

Basisstap n = 0: P (0) geldt want a0 = 0 en 0 2 = 0.<br />

Inductiestap: We nemen aan dat P (n) geldt. Dus an = n 2 . Nu willen we laten zien dat<br />

P (n + 1) ook geldt. We moeten dus laten zien dat<br />

an+1 = (n + 1) 2<br />

Zoals gebruikelijk beginnen we <strong>de</strong> linkerkant <strong>van</strong> <strong>de</strong>ze vergelijking te herschrijven om<br />

<strong>uit</strong>ein<strong>de</strong>lijk op <strong>de</strong> rechterkant <strong>uit</strong> te komen.<br />

an+1 = an + 2n + 1 (<strong>de</strong>finitie an+1)<br />

= n 2 + 2n + 1 (IH)<br />

= (n + 1) 2 (rekenregels)<br />

En dat was precies wat we moesten laten zien.<br />

Dus geldt an = n 2 in<strong>de</strong>rdaad voor alle n ∈ N.<br />

Opgave 4.S In opgave 4.C heb je bewezen dat voor elke n ≥ 1 geldt dat <strong>de</strong> graaf Kn precies<br />

1<br />

2<br />

n(n − 1) lijnen heeft. Bewijs dat nu nog eens, maar dan met inductie naar n.<br />

Oplossing: Het bewijs volgt <strong>het</strong> gebruikelijke patroon.<br />

IH: Definieer P (n) als: Kn heeft precies 1<br />

2n(n − 1) lijnen.<br />

Basisstap n = 1: P (1) geldt want <strong>de</strong> K1 bestaat <strong>uit</strong> één punt en nul lijnen. En natuurlijk<br />

· 1 · (1 − 1) = 0.<br />

geldt ook 1<br />

2<br />

Inductiestap: Neem aan dat P (n) geldt. Dan willen we laten zien dat P (n + 1) ook geldt.<br />

We moeten dus laten zien dat <strong>de</strong> Kn+1 precies 1<br />

2 (n + 1)n lijnen heeft. We doen dit door<br />

Kn+1 op te bouwen <strong>uit</strong> Kn. Het is niet zo moeilijk in te zien dat <strong>de</strong> Kn+1 is opgebouwd<br />

<strong>uit</strong> Kn en één extra punt, waarbij er <strong>van</strong><strong>uit</strong> dat extra punt precies één lijn loopt naar<br />

n(n − 1) lijnen heeft. Maar dan<br />

elk punt <strong>van</strong> Kn. Met <strong>de</strong> IH weten we dat Kn precies 1<br />

2<br />

51


is <strong>het</strong> aantal lijnen <strong>van</strong> Kn+1 gelijk aan:<br />

n + 1<br />

2<br />

n(n − 1) = 2<br />

2<br />

1<br />

n + n(n − 1) (noemers gelijkmaken)<br />

2<br />

= 2n n(n − 1)<br />

+ (breuken vermenigvuldigen)<br />

2 2<br />

= 2n + n(n − 1)<br />

(breuken optellen)<br />

2<br />

= 2n + n2 − n<br />

(haakjes <strong>uit</strong>werken)<br />

2<br />

= n2 + n<br />

(vereenvoudigen)<br />

2<br />

= (n + 1)n<br />

(b<strong>uit</strong>en haakjes halen)<br />

2<br />

= 1<br />

(n + 1)n (herschrijven)<br />

2<br />

En dat was precies wat we moesten bewijzen.<br />

Dus voor alle n ≥ 1 geldt P (n).<br />

Opgave 4.T Bewijs met inductie dat voor alle n ∈ N, 2 n ≥ n.<br />

Oplossing: We gaan met inductie bewijzen dat voor alle n ∈ N 2 n ≥ n.<br />

IH: Definieer P (n) als: 2 n ≥ n.<br />

Basisstap n = 0: P (0) geldt want 2 0 = 1 ≥ 0.<br />

Inductiestap: Neem aan dat P (n) geldt. Dan willen we laten zien dat P (n + 1) ook klopt:<br />

2 n+1 P (n)<br />

n<br />

= 2 · 2 ≥ 2 · n<br />

Dus nu is <strong>de</strong> vraag of 2n ≥ n + 1? Dat geldt niet voor alle n ∈ N. Het geldt alleen<br />

voor n ≥ 1. Dus <strong>uit</strong> P (1) kunnen we in<strong>de</strong>rdaad P (2) bewijzen en <strong>uit</strong> P (2) weer P (3)<br />

en ver<strong>de</strong>r. Maar <strong>uit</strong> P (0) kunnen we dus op <strong>de</strong>ze manier nog niet bewijzen dat P (1)<br />

geldt! Dus onze basisstap schiet te kort. Gelukkig kunnen we dat oplossen door een<br />

extra basisstap toe te voegen:<br />

Basisstap n = 1: P (1) geldt want 2 1 = 2 ≥ 1.<br />

We hebben nu P (0) en P (1) apart bewezen en vervolgens met inductie P (n) voor n ≥ 2.<br />

Maar dan hebben we dus voor alle n ∈ N bewezen dat 2 n ≥ n.<br />

Opgave 4.U We hebben al een mooie formule voor <strong>de</strong> som <strong>van</strong> <strong>de</strong> rij<br />

1 + 2 + 3 + 4 + 5 + · · · + n =<br />

Wat is <strong>het</strong> verband met <strong>het</strong> volgen<strong>de</strong> plaatje?<br />

• • • • •<br />

• • • • ◦<br />

• • • ◦ ◦<br />

• • ◦ ◦ ◦<br />

• ◦ ◦ ◦ ◦<br />

◦ ◦ ◦ ◦ ◦<br />

52<br />

(n + 1)n<br />

.<br />

2


Oplossing: Denk aan oppervlakten. Wat is <strong>de</strong> formule voor <strong>de</strong> oppervlakte <strong>van</strong> een<br />

rechthoek? Wat is hier <strong>de</strong> breedte en wat is hier <strong>de</strong> lengte? En waarom moet je <strong>het</strong> door<br />

twee <strong>de</strong>len?<br />

Opgave 4.V Hoeveel rijtjes kunnen we maken <strong>van</strong> lengte n met daarin alleen <strong>de</strong> getallen 1<br />

tot en met 5? Dit kunnen we ook weer recursief oplossen. Noem <strong>het</strong> aantal rijtjes <strong>van</strong> lengte<br />

n an. Een rijtje <strong>van</strong> lengte 1 kunnen we op vijf manieren maken, dus a1 = 5. Een rijtje <strong>van</strong><br />

lengte n+1 kunnen we maken door eerst een rijtje <strong>van</strong> lengte n te maken en daar een element<br />

achter te zetten. Dus an+1 := 5 · an. Herinner je nu even <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> machtsverheffen.<br />

Bewijs met inductie dat voor alle n, an = 5 n .<br />

Oplossing: Voor alle dui<strong>de</strong>lijkheid: <strong>het</strong> gaat hier om rijtjes waar <strong>de</strong> getallen 1 tot en met<br />

5 best dubbel in mogen voorkomen. Dat kun je bijvoorbeeld al aflei<strong>de</strong>n <strong>uit</strong> <strong>het</strong> feit dat er ook<br />

een rijtje <strong>van</strong> lengte 6 gemaakt moet kunnen wor<strong>de</strong>n.<br />

IH: Definieer P (n) als an = 5 n .<br />

Basisstap n = 1: a1 = 5 = 5 1 dus P (1) klopt.<br />

Inductiestap: Neem aan dat P (n) geldt. We moeten nu bewijzen dat ook P (n + 1) geldt.<br />

an+1 = 5 · an<br />

P (n)<br />

= 5 · 5 n = 5 n+1<br />

Dus in<strong>de</strong>rdaad kunnen we P (n + 1) aflei<strong>de</strong>n <strong>uit</strong> P (n).<br />

Dus voor alle n ∈ N, n ≥ 1 geldt an = 5 n .<br />

Merk op dat we nu alleen maar naar rijtjes <strong>van</strong> lengte 1 of meer hebben gekeken. Als je<br />

echter ook alle mogelijke rijtjes <strong>van</strong> lengte 0 meeneemt, blijkt <strong>het</strong> ook te kloppen. Het enige<br />

dat veran<strong>de</strong>rt in dit bewijs is dat <strong>de</strong> basis bij n = 0 zit. Controleer zelf dat <strong>het</strong> voor n = 0<br />

in<strong>de</strong>rdaad ook geldt. (Of met an<strong>de</strong>re woor<strong>de</strong>n: be<strong>de</strong>nk hoeveel verschillen<strong>de</strong> rijtjes <strong>van</strong> lengte<br />

0 bestaan.)<br />

Opgave 4.W Bewijs met inductie dat 1 + 3 + 5 + 7 + · · · + (2n − 1) = n 2 . Wat is <strong>het</strong> verband<br />

met <strong>het</strong> volgen<strong>de</strong> plaatje?<br />

◦ • ◦ • ◦<br />

• • ◦ • ◦<br />

◦ ◦ ◦ • ◦<br />

• • • • ◦<br />

◦ ◦ ◦ ◦ ◦<br />

Oplossing: Definieer <strong>de</strong> rij sn recursief als volgt<br />

s1 = 1<br />

sn = sn−1 + 2n − 1 voor n ≥ 2<br />

Dus sn = 1 + 3 + . . . + (2n − 1). We moeten met inductie bewijzen dat sn = n 2 .<br />

IH: Definieer P (n) als sn = n 2 .<br />

Basisstap n = 1: s1 = 1 = 1 2 , dus P (1) geldt.<br />

53


Inductiestap: Uit P (n) gaan we P (n + 1) bewijzen.<br />

sn+1 = sn + 2(n + 1) − 1<br />

P (n)<br />

= n 2 + 2(n + 1) − 1 = n 2 + 2n + 2 − 1 = n 2 + 2n + 1 = (n + 1) 2<br />

En dus kunnen we P (n + 1) in<strong>de</strong>rdaad bewijzen als P (n) geldt.<br />

En dus weten we nu dat voor n ∈ N, n ≥ 1 1 + 3 + . . . + (2n − 1) = n 2 . (Merk op dat <strong>het</strong> bij<br />

<strong>de</strong>ze opgave geen zin heeft om over n = 0 te praten.)<br />

In <strong>het</strong> plaatje zou je weer <strong>de</strong> link met oppervlakten moeten kunnen zien.<br />

Opgave 4.X Bewijs dat er in <strong>de</strong> 2e △vP aan <strong>de</strong> rand allemaal eentjes staan.<br />

Oplossing: De punten op <strong>de</strong> rand hebben ofwel coördinaten (n, 0) ofwel (n, n). Per<br />

<strong>de</strong>finitie <strong>van</strong> 2e △vP staat er dus n<br />

n<br />

0 respectievelijk n . En die zijn bei<strong>de</strong> per <strong>de</strong>finitie 1<br />

voor elke n.<br />

Opgave 4.Y Laat zien dat ook <strong>de</strong> 4e △vP gelijk is aan <strong>de</strong> 1e △vP.<br />

Oplossing: Voordat we dit formeel gaan bewijzen met inductie, eerst informeel <strong>het</strong><br />

achterliggen<strong>de</strong> i<strong>de</strong>e. In <strong>de</strong> 4e △vP staat op coördinaat (n, k) <strong>de</strong> coëfficiënt <strong>van</strong> x k in <strong>de</strong><br />

veelterm (1 + x) n . Wat we nu straks formeel willen bewijzen is dat <strong>de</strong> term in 4e △vP op<br />

positie (n+1, k) kan wor<strong>de</strong>n verkregen door <strong>de</strong> getallen op posities (n, k−1) en (n, k) bij elkaar<br />

op te tellen, precies zoals in <strong>de</strong> 1e △vP. Dat kunnen we doen door <strong>de</strong> veelterm (1 + x) n+1<br />

te ontbin<strong>de</strong>n tot (1 + x)(1 + x) n wat natuurlijk weer gelijk is aan (1 + x) n + x(1 + x n ). Hoe<br />

kun je nu <strong>de</strong> coëfficiënt <strong>van</strong> x k bepalen in <strong>de</strong>ze veelterm? Nou, die krijg je natuurlijk door <strong>de</strong><br />

coëfficient <strong>van</strong> x k in <strong>de</strong> veelterm <strong>van</strong> (1 + x) n te nemen en die op te tellen bij <strong>de</strong> coëfficiënt<br />

<strong>van</strong> x k in <strong>de</strong> veelterm x(1 + x) n . Maar die laatste is natuurlijk precies <strong>de</strong> coëfficiënt <strong>van</strong> x k−1<br />

in <strong>de</strong> veelterm (1 + x) n . En daarmee hebben we precies <strong>de</strong> getallen gevon<strong>de</strong>n die volgens <strong>de</strong><br />

4e △vP op <strong>de</strong> posities (n, k) en (n, k − 1) staan.<br />

Nu <strong>het</strong> formele bewijs. We laten zien dat alle coëfficiënten in <strong>de</strong> n-e rij <strong>van</strong> 1e △vP gelijk<br />

zijn aan die in <strong>de</strong> n-e rij <strong>van</strong> 4e △vP. Door vervolgens inductie op n toe te passen, kunnen<br />

we dus <strong>uit</strong>ein<strong>de</strong>lijk voor elke rij bewijzen dat <strong>de</strong> entries <strong>het</strong>zelf<strong>de</strong> zijn. Voordat we <strong>het</strong> bewijs<br />

<strong>uit</strong>schrijven introduceren we eerst een afkorting voor <strong>de</strong> coëfficiënt <strong>van</strong> x k in een veelterm<br />

f(x):<br />

[f(x)] |k<br />

Twee prettige eigenschappen <strong>van</strong> <strong>de</strong>ze operatie zijn:<br />

[f(x) + g(x)] |k = [f(x)] |k + [g(x)] |k (1)<br />

[x · f(x)] |k = [f(x)] |k−1 als k > 0 (2)<br />

Bere<strong>de</strong>neer zelf dat (1) geldt. Hier bewijzen we (2) Neem aan dat <strong>de</strong>g(f(x)) = p.<br />

[x · f(x)] |k<br />

<br />

= x<br />

=<br />

<br />

[f(x)] |0 + [f(x)] |1 x + · · · + [f(x)] |k−1 x k−1 + · · · + [f(x)] |p x p<br />

|k<br />

<br />

[f(x)] |0 x + [f(x)] |1 x 2 + · · · + [f(x)] |k−1 x k + · · · + [f(x)] |p x p+1<br />

= [f(x)] |k−1<br />

Ga voor jezelf na dat geldt: [f(x) + g(x)] |k = [f(x)] |k + [g(x)] |k .<br />

54<br />

|k


Defineer nu <strong>de</strong> bewering P (n) alsvolgt:<br />

P (n) := ∀k ∈ {0, . . . , n}[4e △vP (n,k) = 1e △vP (n,k)]<br />

De stelling die we nu moeten bewijzen is: P (n) geldt voor alle n ∈ N. Zoals gezegd gaat <strong>het</strong><br />

bewijs met inductie naar n.<br />

Basisstap n = 0: We moeten dus bewijzen dat voor alle k ∈ {0} geldt dat 4e △vP (0,k) =<br />

1e △vP (0,k), dus alleen maar voor k = 0. Bewijs:<br />

Dus voor n = 0 geldt P (n).<br />

4e △vP (0,0) = (1 + x) 0<br />

|0<br />

= x 0<br />

|0<br />

= 1<br />

= 1e △vP (0,0)<br />

Inductiestap: Uit P (n) gaan we P (n + 1) bewijzen. We moeten nu dus laten zien dat voor<br />

alle k ∈ {0, . . . , n + 1} geldt dat<br />

4e △vP (n+1,k) = 1e △vP (n+1,k)<br />

We maken een gevalson<strong>de</strong>rscheiding voor k.<br />

• k = 0. Bewijs:<br />

En dus geldt (3) voor k = 0.<br />

• 0 < k < n + 1. Bewijs:<br />

4e △vP (n+1,0) = (1 + x) n+1<br />

|0<br />

n+1 = [1 + x] |0<br />

= 1 n+1<br />

= 1<br />

= 1e △vP (n+1,0)<br />

4e △vP (n+1,k) = (1 + x) n+1<br />

|k<br />

(4)<br />

= [(1 + x)(1 + x) n ] |k (5)<br />

(3)<br />

= [(1 + x) n + x(1 + x) n ] |k (6)<br />

= [(1 + x) n ] |k + [x(1 + x) n ] |k (7)<br />

= [(1 + x) n ] |k + [(1 + x) n ] |k−1 (8)<br />

= 4e △vP (n,k) + 4e △vP (n,k−1) (9)<br />

= 1e △vP (n,k) + 1e △vP (n,k−1) (10)<br />

= 1e △vP (n+1,k) (11)<br />

Merk op dat (4) niets an<strong>de</strong>rs is dan <strong>de</strong> <strong>de</strong>finitie <strong>van</strong> 4e △vP. Ver<strong>de</strong>r zijn (5) en (6)<br />

<strong>het</strong> resultaat <strong>van</strong> een eenvoudige berekening. En (7) volgt <strong>uit</strong> (6) en eigenschap<br />

55


(1). Ver<strong>de</strong>r volgt (8) <strong>uit</strong> (7) en eigenschap (2). En (9) is niets an<strong>de</strong>rs dan twee keer<br />

<strong>de</strong> <strong>de</strong>finitie <strong>van</strong> 4e △vP toepassen. Pas in (10) passen we <strong>de</strong> inductiehypothese<br />

toe, maar dan wel meteen twee keer. En tot slot is (11) een toepassing <strong>van</strong> <strong>de</strong><br />

<strong>de</strong>finitie <strong>van</strong> 1e △vP. Alles bij elkaar hebben we nu bewezen dat (3) geldt voor<br />

0 < k < n + 1.<br />

• k = n + 1. Bewijs:<br />

En dus geldt (3) voor k = n + 1.<br />

4e △vP (n+1,n+1) = (1 + x) n+1<br />

=<br />

|n+1<br />

n+1 [1 + x] |1<br />

= 1 n+1<br />

= 1<br />

= 1e △vP (n+1,n+1)<br />

En dus geldt (3) voor alle k ∈ {0, . . . , n + 1}. Maar dan geldt dus dat P (n + 1) geldt.<br />

Merk overigens op dat je voor <strong>de</strong> gevallen k = 0 en k = n + 1 helemaal geen inductie<br />

gebruikt!<br />

En dus is nu voor alle n ∈ N bewezen dat P (n) geldt.<br />

Opgave 4.Z Laat zien hoe je in <strong>de</strong> driehoek <strong>van</strong> Pascal kunt vin<strong>de</strong>n hoeveel manieren er<br />

zijn om vier objecten <strong>uit</strong> een collectie <strong>van</strong> zes objecten te kiezen. Wat is <strong>de</strong> notatie voor <strong>de</strong><br />

bijbehoren<strong>de</strong> binomiaalcoëfficiënt?<br />

Oplossing: Voor <strong>de</strong> n-e rij <strong>uit</strong> <strong>de</strong> driehoek <strong>van</strong> Pascal geldt dat <strong>het</strong> m-e getal aangeeft op<br />

hoeveel manier je m − 1 objecten <strong>uit</strong> een collectie <strong>van</strong> n − 1 objecten kunt pakken. Be<strong>de</strong>nk<br />

dat <strong>de</strong> eerste 1 telkens betekent dat je op precies één manier ‘niets’ kunt pakken <strong>uit</strong> een serie<br />

objecten. Dat klinkt misschien gek, maar probeer <strong>het</strong> maar als volgt te begrijpen. Stel dat<br />

je op twee manieren ‘niets’ kunt pakken. Dan moet je verschil kunnen aangeven tussen die<br />

twee resultaten. Maar omdat je niets gepakt hebt is er geen verschil te zien. En dus was <strong>het</strong><br />

eigenlijk <strong>de</strong>zelf<strong>de</strong> manier.<br />

Hier moet je dus <strong>het</strong> vijf<strong>de</strong> getal <strong>uit</strong> <strong>de</strong> zeven<strong>de</strong> rij pakken:<br />

1<br />

1 1<br />

1 2 1<br />

1 3 3 1<br />

1 4 6 4 1<br />

1 5 10 10 5 1<br />

1 6 15 20 15 6 1<br />

1 7 21 35 35 21 7 1<br />

De bijbehoren<strong>de</strong> binomiaalcoëfficiënt is 6<br />

4 .<br />

Let wel: <strong>de</strong> 0-e rij <strong>uit</strong> zo’n driehoek bestaat niet. Je kunt <strong>het</strong> wel hebben over een rij<br />

met naam 0, maar <strong>de</strong> eerste rij die je tegenkomt is per <strong>de</strong>finitie <strong>de</strong> eerste rij en niet <strong>de</strong> nul<strong>de</strong><br />

rij! Op <strong>de</strong>zelf<strong>de</strong> manier kun je niet spreken over <strong>het</strong> nul<strong>de</strong> element. Vandaar dat je hier <strong>het</strong><br />

vijf<strong>de</strong> element <strong>uit</strong> <strong>de</strong> zeven<strong>de</strong> rij pakt, daar waar je misschien <strong>het</strong> vier<strong>de</strong> element <strong>uit</strong> <strong>de</strong> zes<strong>de</strong><br />

rij had verwacht.<br />

56


5 Modale logica<br />

Opgave 5.A De formule ♦R betekent dus <strong>het</strong>zelf<strong>de</strong> als ¬¬R. Vind een formule zon<strong>de</strong>r<br />

<strong>het</strong> symbool ‘’ die <strong>het</strong>zelf<strong>de</strong> betekent als R. Vertaal zowel R als <strong>de</strong> formule die je hebt<br />

gevon<strong>de</strong>n in een Ne<strong>de</strong>rlandse zin.<br />

Oplossing: R ≡ ¬♦¬R. R betekent ‘Het is noodzakelijk dat <strong>het</strong> regent’. ¬♦¬R<br />

betekent ‘Het is niet mogelijk dat <strong>het</strong> niet regent’.<br />

Opgave 5.B Nu wordt ‘U is noodzakelijk’ symbolisch opgeschreven als U, en ‘U is onmogelijk’<br />

als ¬U of ¬♦U. Geef twee verschillen<strong>de</strong> formules <strong>van</strong> <strong>de</strong> modale logica die ‘U is<br />

contingent’ <strong>uit</strong>drukken.<br />

Oplossing: ¬U ∧ ♦U en ♦U ∧ ♦¬U.<br />

Opgave 5.C Gebruik <strong>het</strong> woor<strong>de</strong>nboek:<br />

G ik heb geld<br />

K ik koop iets<br />

en vertaal <strong>de</strong> volgen<strong>de</strong> Ne<strong>de</strong>rlandse zinnen naar formules <strong>van</strong> <strong>de</strong> modale logica:<br />

(i) Het is mogelijk dat ik iets koop zon<strong>de</strong>r dat ik geld heb.<br />

Oplossing: ♦(K ∧ ¬G). De oorspronkelijke zin lijkt onmogelijk (als we kopen op afbetaling<br />

b<strong>uit</strong>en beschouwing laten). Een alternatieve vertaling is (♦K) ∧ ¬G. Die is ook<br />

onmogelijk.<br />

(ii) Het is noodzakelijk dat als ik iets koop dat ik dan ook geld heb.<br />

Oplossing: (K → G). Dit lijkt een noodzakelijk ware zin.<br />

(iii) Het is mogelijk dat als ik iets koop dat ik dan geen geld heb.<br />

Oplossing: Hier is <strong>het</strong> erg afhankelijk <strong>van</strong> hoe je <strong>de</strong> zin interpreteert. Doe je dat<br />

als ♦(K → ¬G), dan is <strong>het</strong> een noodzakelijk ware bewering. Immers K → ¬G is<br />

bijvoorbeeld waar als je niets koopt, ongeacht of je geld hebt of niet. Dus ♦(K → ¬G)<br />

is dan noodzakelijk waar. Als je echter <strong>de</strong> alternatieve interpretatie ♦(K ∧ ¬G) neemt,<br />

dan hebben we hierboven al gezien dat die onmogelijk waar is.<br />

Welke <strong>van</strong> <strong>de</strong>ze zinnen lijken je waar? Leg <strong>uit</strong> waarom.<br />

Opgave 5.D Geef bij <strong>de</strong> volgen<strong>de</strong> formules <strong>van</strong> <strong>de</strong> modale logica <strong>de</strong> vorm die aan <strong>de</strong> officiële<br />

grammatica voldoet, en teken <strong>de</strong> bijbehoren<strong>de</strong> bomen.<br />

(i) (a)<br />

Oplossing: a; <br />

<br />

<br />

<br />

a<br />

(ii) a → a<br />

Oplossing: (a → a); →<br />

<br />

<br />

<br />

<br />

a<br />

57<br />

a


(iii) (a) → a<br />

Oplossing: (a → a); →<br />

<br />

<br />

<br />

<br />

a<br />

(iv) (a → a)<br />

Oplossing: (a → a); <br />

<br />

→<br />

<br />

<br />

a a<br />

(v) ¬a → ¬a<br />

Oplossing: (¬a → ¬a); →<br />

a<br />

<br />

<br />

¬<br />

¬<br />

<br />

<br />

a <br />

(vi) ♦a → ♦a<br />

Oplossing: (♦a → ♦a); →<br />

<br />

<br />

♦<br />

<br />

a<br />

<br />

<br />

<br />

a ♦<br />

(vii) a → ♦a<br />

Oplossing: (a → ♦a); →<br />

<br />

<br />

<br />

<br />

<br />

a a<br />

(viii) ♦a ∧ b → ♦a ∨ ¬c<br />

Oplossing: ((♦a ∧ b) → (♦a ∨ ¬c)); →<br />

Opgave 5.E Gebruik <strong>het</strong> volgen<strong>de</strong> woor<strong>de</strong>nboek:<br />

58<br />

♦<br />

♦<br />

<br />

a<br />

<br />

<br />

∧<br />

<br />

<br />

∨<br />

<br />

<br />

b ♦ ¬<br />

<br />

<br />

a <br />

<br />

a<br />

<br />

c


K ik ben klaar<br />

H ik ga naar huis<br />

Vertaal voor ie<strong>de</strong>r <strong>van</strong> <strong>de</strong> logica’s <strong>uit</strong> <strong>de</strong> tabel (behalve voor <strong>de</strong> programma-logica) <strong>de</strong> formule<br />

¬K → ¬♦H<br />

naar <strong>het</strong> Ne<strong>de</strong>rlands.<br />

Oplossing:<br />

(i) Modaal: Als ik niet klaar ben dan is <strong>het</strong> niet mogelijk dat ik naar huis ga.<br />

(ii) Epistemisch: Als ik niet klaar ben dan is <strong>het</strong> strijdig met mijn kennis dat ik naar huis<br />

ga.<br />

(iii) Doxastisch: Als ik niet klaar ben dan is <strong>het</strong> strijdig met mijn geloof dat ik naar huis ga.<br />

(iv) Temporeel: Als ik niet klaar ben dan niet soms ga ik naar huis. Als ik niet klaar ben<br />

dan ga ik nooit naar huis.<br />

(v) Deontisch: Als ik niet klaar ben dan niet mag ik naar huis gaan. Als ik niet klaar ben<br />

dan mag ik niet naar huis gaan.<br />

Opgave 5.F Maak een tabel <strong>van</strong> modale logica’s en axiomaschema’s, waarin je aangeeft<br />

in welke logica’s welke schema’s gel<strong>de</strong>n. Zet <strong>de</strong> logica’s <strong>uit</strong> <strong>de</strong> lijst op pagina 64 langs <strong>de</strong><br />

linkerkant <strong>van</strong> <strong>de</strong> tabel en <strong>de</strong> axiomaschema’s aan <strong>de</strong> bovenkant. Zet nu een ‘+’ in <strong>de</strong> tabel<br />

wanneer je <strong>de</strong>nkt dat <strong>het</strong> schema in <strong>de</strong> logica geldt, en een ‘−’ wanneer je <strong>de</strong>nkt dat dat niet<br />

altijd zo hoeft te zijn. Zo maak je dus een tabel met 36 plussen en minnen.<br />

Oplossing:<br />

distr. refl. sym. trans. Eucl. ser.<br />

K T B 4 5 D<br />

Modaal + 1 + 2 + 3 + 4 + 5 + 6<br />

Epistemisch + 7 + 8 + 9 + 10 -/+ 11 + 12<br />

Doxastisch + 13 - 14 + 15 + 16 -/+ 17 - 18<br />

Temporeel + 19 + 20 - 21 + 22 - 23 + 24<br />

Deontisch + 25 - 26 - 27 -/+ 28 -/+ 29 -/+ 30<br />

Programma + 31 - 32 - 33 - 34 - 35 + 36<br />

Hieron<strong>de</strong>r <strong>de</strong> <strong>uit</strong>leg waarom er een ‘+’ of een ‘-’ staat. In <strong>het</strong> bijzon<strong>de</strong>r is hier discussie<br />

over mogelijk, dus als je <strong>het</strong> ergens dui<strong>de</strong>lijk niet mee eens bent, geef dan door wat er mis is<br />

met onze re<strong>de</strong>nering. In <strong>het</strong> bijzon<strong>de</strong>r heeft <strong>het</strong> geen zin om <strong>de</strong>ze re<strong>de</strong>neringen <strong>uit</strong> <strong>het</strong> hoofd<br />

te leren! Op een toets of tentamen moet je zelf een argument kunnen geven waarom een<br />

bepaal<strong>de</strong> eigenschap wel of niet geldt.<br />

1. (Modaal) Als g noodzakelijk <strong>uit</strong> f volgt en f is noodzakelijk, dan is g zelf ook noodzakelijk.<br />

2. Als f noodzakelijk is, dan is f waar.<br />

3. Als f waar is, dan is <strong>de</strong> mogelijkheid dat f waar is noodzakelijk.<br />

4. Als f noodzakelijk is, dan is f ook noodzakelijk op grond <strong>van</strong> logisch re<strong>de</strong>neren.<br />

5. Als f mogelijk is, dan is ♦f ook noodzakelijk.<br />

59


6. Elk reflexief systeem is ook serieel.<br />

7. (Epistemisch) Als we weten dat <strong>uit</strong> f g volgt en we weten dat f waar is dan weten we<br />

ook dat g geldt.<br />

8. Alleen ware feiten f kunnen gekend wor<strong>de</strong>n.<br />

9. Als f waar is, dan weet je dat <strong>het</strong> niet strijdig is met je kennis.<br />

10. Je weet wat je weet.<br />

11. Dit betekent zoiets als: je weet wat je niet weet. Als iets niet strijdig is met wat je weet,<br />

dan weet je dat ook. Niet ie<strong>de</strong>reen vindt dat dit re<strong>de</strong>lijk is.<br />

12. Elk reflexief systeem is ook serieel.<br />

13. (Doxastisch) Als je gelooft dat f g impliceert en je gelooft f dan ligt <strong>het</strong> voor <strong>de</strong> hand<br />

ook g te geloven.<br />

14. Niet alles wat je gelooft is waar.<br />

15. Als iets waar is, geloof je dan dat <strong>het</strong> niet strijdig is met je geloof?<br />

16. Als je iets gelooft, geloof je (vast) ook wel dat je dat gelooft.<br />

17. Als iets niet strijdig is met je geloof, is dat dan een re<strong>de</strong>n om <strong>het</strong> dan zelf ook maar te<br />

geloven?<br />

18. Mensen kunnen best in strijdige dingen geloven.<br />

19. (Temporeel) Als altijd geldt dat f g impliceert en ver<strong>de</strong>r geldt f altijd dan moet g ook<br />

wel altijd gel<strong>de</strong>n.<br />

20. Als f altijd geldt, dan moet <strong>het</strong> in <strong>het</strong> bijzon<strong>de</strong>r nu gel<strong>de</strong>n. (Nb. hier gebruiken we <strong>de</strong><br />

LTL interpretatie <strong>uit</strong> sectie 5.6; er zijn ook an<strong>de</strong>re temporele logica’s.)<br />

21. On<strong>de</strong>r <strong>de</strong> LTL interpretatie dat nu een on<strong>de</strong>r<strong>de</strong>el <strong>van</strong> <strong>de</strong> toekomst is, volgt <strong>uit</strong> <strong>het</strong> feit<br />

dat f nu waar is automatisch dat <strong>het</strong> altijd een keer waar is? Nee, neem maar een<br />

eigenschap f die alleen <strong>van</strong>daag waar is. Dan geldt voor <strong>van</strong>daag ♦f wel. Maar voor<br />

morgen geldt ♦f niet. En dus geldt ♦f niet. (In zekere zin betekent ♦f dat f<br />

oneindig vaak waar is: op elk moment is er een later moment waarop f waar is.)<br />

22. Als iets <strong>van</strong>af nu altijd waar is, dan is <strong>het</strong> ook altijd waar <strong>van</strong>af elk later moment dan<br />

nu.<br />

23. Als iets ooit waar is, hoeft dat niet te betekenen dat <strong>het</strong> altijd ooit waar is. Zie <strong>het</strong><br />

voorbeeld tegen symmetrie.<br />

24. Als iets altijd waar is, dan is <strong>het</strong> zeker ooit waar.<br />

25. (Deontisch) Als <strong>het</strong> zo is dat je g moet doen indien je f doet en je moet f doen, dan<br />

moet je ook g doen.<br />

26. Uit <strong>het</strong> feit dat je f moet doen volgt niet dat je f ook doet.<br />

60


27. Als je f doet dan volgt daar<strong>uit</strong> niet dat dat moet mogen.<br />

28. Als je f moet doen, moet je dan ook f moeten?<br />

29. Als je f mag doen, moet dat dan ook mogen?<br />

30. Het klinkt niet onre<strong>de</strong>lijk om aan te nemen dat als je iets moet, je <strong>het</strong> ook mag. Aan <strong>de</strong><br />

an<strong>de</strong>re kant, soms moet je naar <strong>de</strong> wc terwijl dat <strong>van</strong> <strong>de</strong> docent niet mag. Ver<strong>de</strong>r is dit<br />

axioma equivalent aan f ∧ ¬f. En <strong>het</strong> komt best voor dat je tegenstrijdige dingen<br />

moet. Een zogenaam<strong>de</strong> ‘double bind’. Neem bijvoorbeeld een gebodsbord met daarop<br />

<strong>de</strong> tekst ‘negeer dit bord’.<br />

31. (Programma) Als na executie geldt dat f g impliceert en na executie geldt f, dan moet<br />

g ook na executie gel<strong>de</strong>n.<br />

32. Het feit dat f geldt na executies betekent niet dat f nu geldt.<br />

33. Het feit dat f nu geldt betekent niet dat na executie <strong>het</strong> moet zijn dat na executie f<br />

kan gel<strong>de</strong>n.<br />

34. Als f na executie geldt, betekent dat nog niet dat na een twee<strong>de</strong> executie f weer geldt.<br />

35. Als f na executie kan gel<strong>de</strong>n, betekent dat nog niet dat <strong>het</strong> na executie moet zijn dat<br />

<strong>het</strong> na executie kan gel<strong>de</strong>n.<br />

36. Als f na executie moet gel<strong>de</strong>n, dan kan <strong>het</strong> na executie zeker gel<strong>de</strong>n.<br />

Opgave 5.G Ga <strong>van</strong> <strong>de</strong> volgen<strong>de</strong> formules f na in welke werel<strong>de</strong>n x <strong>van</strong> ons voorbeeld <strong>van</strong><br />

een Kripke-mo<strong>de</strong>l ze waar zijn, ofwel, voor welke x er geldt dat x f. Welke zijn in <strong>het</strong> hele<br />

mo<strong>de</strong>l waar, ofwel, voor welke geldt M1 |= f?<br />

(i) a<br />

Oplossing: Als x ∈ {x1, x2, x4} dan geldt a ∈ V (x) en dus x a. Omdat x ∈ V (x3)<br />

geldt x3 a. En dus ook M1 |= a.<br />

(ii) a<br />

Oplossing: R(x1) = {x2} en x2 a, dus x1 a. R(x2) = {x1, x2}, x1 a en x2 a,<br />

dus x2 a. R(x3) = {x1} en x1 a, dus x3 a. R(x4) = ∅ en dus automatisch<br />

x4 a, want er is geen enkele wereld waarvoor er iets gecontroleerd hoeft te wor<strong>de</strong>n.<br />

En dus M1 |= a.<br />

(iii) ♦a<br />

Oplossing: R(x1) = {x2} en x2 a, dus x1 ♦a. R(x2) = {x1, x2} en x1 a, dus<br />

x2 ♦a. R(x3) = {x1} en x1 a, dus x3 ♦a. R(x4) = ∅ en dus automatisch x4 ♦a,<br />

want ♦a vereist dat er een toegankelijke wereld <strong>van</strong><strong>uit</strong> x4 is. En dus M1 |= ♦a.<br />

(iv) a → a<br />

Oplossing: We hebben al gezien dat x1 a, x2 a en x4 a. En dus weten<br />

we ook meteen met <strong>de</strong> waarheidstabel <strong>van</strong> → dat x1 a → a, x2 a → a en<br />

x4 a → a. Ver<strong>de</strong>r weten we dat x3 a maar x3 a. En dus x3 a → a. En<br />

dus M1 |= a → a.<br />

(v) a → a<br />

Oplossing: R(x1) = {x2} en x2 a, dus x1 a. En dus ook x1 a → a.<br />

R(x2) = {x1, x2}, x1 a en x2 a, dus x2 a. En dus ook x2 a → a.<br />

61


R(x3) = {x1} en x1 a, dus x3 a. En dus ook x3 a → a. R(x4) = ∅ en<br />

dus automatisch x4 a. En dus ook x4 a → a. En dus M1 |= a → a.<br />

(vi) a → ♦a<br />

Oplossing: R(x1) = {x2}. We hebben al gezien dat x2 ♦a. Dus x1 ♦a. En<br />

dus ook x1 a → ♦a. R(x2) = {x1, x2}. We weten al dat x1 ♦a en x2 ♦a.<br />

Dus x2 ♦a. En dus ook x2 a → ♦a. Omdat x3 a weten we meteen dat<br />

x3 a → ♦a. R(x4) = ∅. En dus meteen x4 ♦a. En dus ook x4 a → ♦a. En<br />

dus M1 |= a → ♦a.<br />

Opgave 5.H (i) Bestaat er een Kripke-mo<strong>de</strong>l M2 zodat M2 |= a maar M2 |= a? Als<br />

je antwoord ‘ja’ is: geef een voorbeeld <strong>van</strong> zo’n mo<strong>de</strong>l M2. Als je antwoord ‘nee’ is:<br />

waarom niet?<br />

Oplossing: Nee, zo’n mo<strong>de</strong>l M2 bestaat niet. Stel dat er wel een mo<strong>de</strong>l M2 = 〈W, R, V 〉<br />

bestaat met M2 |= a en M2 |= a. Dan bestaat er dus een x ∈ W met x a en<br />

x a. Er zijn dan twee mogelijkhe<strong>de</strong>n voor R(x): leeg of niet-leeg. Als R(x) = ∅<br />

geldt automatisch x a en dus hebben we een tegenspraak. Dus R(x) = ∅. Maar<br />

voor alle y ∈ R(x) geldt dat y a want R(x) ⊆ W en M2 |= a betekent dat y a voor<br />

alle y ∈ W geldt. Maar dan geldt x a en we hebben weer een tegenspraak. Dus kan<br />

zo’n mo<strong>de</strong>l niet bestaan.<br />

(ii) Bestaat er een Kripke-mo<strong>de</strong>l M3 zodat M3 |= a maar M3 |= ♦a? Als je antwoord ‘ja’<br />

is: geef een voorbeeld <strong>van</strong> zo’n mo<strong>de</strong>l M3. Als je antwoord ‘nee’ is: waarom niet?<br />

Oplossing: Ja. Neem M3 = 〈W, R, V 〉 met W = {x1}, R(x1) = ∅ en V (x1) = {a}. In<br />

een diagram ziet dat er zo <strong>uit</strong>:<br />

M3 :<br />

Omdat x1 a geldt M3 |= a. Maar omdat R(x1) = ∅ geldt x1 ♦a en dus ook<br />

M3 |= ♦a.<br />

Opgave 5.I (i) Bestaat er een Kripke-mo<strong>de</strong>l M4 dat serieel is maar niet reflexief? Als<br />

je antwoord ‘ja’ is: geef een voorbeeld <strong>van</strong> zo’n mo<strong>de</strong>l M4. Als je antwoord ‘nee’ is:<br />

waarom niet?<br />

Oplossing: Laat je bij <strong>de</strong>ze opgave niet foppen: een mo<strong>de</strong>l is serieel als <strong>het</strong> voor alle f<br />

aan axioma D voldoet en reflexief als <strong>het</strong> voor alle f aan axioma T voldoet. Een mo<strong>de</strong>l<br />

geven dat voor bijvoorbeeld f = a voldoet aan die axioma’s wil dus nog niet zeggen<br />

dat <strong>het</strong> mo<strong>de</strong>l in<strong>de</strong>rdaad serieel of reflexief is! In <strong>het</strong> algemeen is <strong>het</strong> zelfs vrij lastig te<br />

bewijzen dat een mo<strong>de</strong>l serieel of reflexief is. Echter, <strong>de</strong> karakterisering die in sectie 5.5<br />

wordt gegeven is veel handiger:<br />

• Een mo<strong>de</strong>l is serieel als er <strong>uit</strong> elke wereld minstens één pijl vertrekt.<br />

• Een mo<strong>de</strong>l is reflexief als er <strong>van</strong><strong>uit</strong> ie<strong>de</strong>re wereld een pijl naar zichzelf is.<br />

Nu terug naar <strong>de</strong>ze opgave. Het antwoord is ja; zo’n mo<strong>de</strong>l bestaat. Neem M4 =<br />

〈W, R, V 〉 met W = {x1, x2}, R(x1) = {x1}, R(x2) = {x1}, V (x1) = {a} en V (x2) = ∅.<br />

In een diagram ziet dat er zo <strong>uit</strong>:<br />

M4 :<br />

x1<br />

62<br />

<br />

x1<br />

a<br />

<br />

a<br />

x2


Omdat R(x1) = R(x2) = {x1} gaat er dus <strong>van</strong><strong>uit</strong> elke wereld minimaal één pijl en is<br />

M4 dus serieel. Het mo<strong>de</strong>l is echter niet reflexief: <strong>van</strong><strong>uit</strong> x2 is er geen pijl naar x2 zelf.<br />

Omdat we hier laten zien dat <strong>het</strong> mo<strong>de</strong>l niet reflexief is, kunnen we ook één specifieke<br />

formule f pakken en laten zien dat M4 |= f → f. We nemen hiervoor f = a. Omdat<br />

R(x2) = {x1} en a ∈ V (x1) geldt x2 a. Echter, omdat a ∈ V (x2) geldt x2 a niet.<br />

En dus geldt x2 a → a. En dus geldt M4 |= a → a. Dus M4 is niet reflexief.<br />

(ii) Bestaat er een Kripke-mo<strong>de</strong>l M5 dat reflexief is maar niet serieel? Als je antwoord ‘ja’<br />

is: geef een voorbeeld <strong>van</strong> zo’n mo<strong>de</strong>l M5. Als je antwoord ‘nee’ is: waarom niet?<br />

Oplossing: Nee, zo’n mo<strong>de</strong>l M5 bestaat niet. M5 is reflexief betekent dat x ∈ R(x)<br />

voor alle x ∈ W . Dus is er in elk geval een pijl <strong>van</strong><strong>uit</strong> x naar zichzelf. In <strong>het</strong> bijzon<strong>de</strong>r<br />

is er dus minimaal één pijl <strong>van</strong><strong>uit</strong> x en dus is M5 serieel. Dus M5 kan niet wel reflexief<br />

en toch niet serieel zijn.<br />

Opgave 5.J Druk <strong>de</strong> volgen<strong>de</strong> zinnen <strong>uit</strong> in LTL. Je mag in je vertalingen alle operatoren<br />

<strong>van</strong> LTL gebruiken.<br />

(i) Er komt een moment waarna <strong>de</strong> <strong>uit</strong>spraak a altijd waar zal zijn.<br />

Oplossing: FGa of FX Ga. Bij <strong>de</strong> twee<strong>de</strong> versie leg je nadruk op <strong>het</strong> feit dat ‘waarna’<br />

een volgend moment inhoudt.<br />

(ii) De <strong>uit</strong>spraken a en b zijn om <strong>de</strong> beurt waar.<br />

Oplossing: De formule G((a → X (¬a ∧ b)) ∧ (b → X (¬b ∧ a))) lijkt misschien goed,<br />

maar is <strong>het</strong> niet. In een situatie waarin altijd ¬a ∧ ¬b geldt, is genoem<strong>de</strong> formule waar,<br />

terwijl dui<strong>de</strong>lijk is dat a en b niet om <strong>de</strong> beurt waar zijn. We kunnen <strong>de</strong> formule echter<br />

een klein beetje aanpassen door te eisen dat altijd één <strong>van</strong> <strong>de</strong> twee waar moet zijn:<br />

G((a ∨ b) ∧ (a → X (¬a ∧ b)) ∧ (b → X (¬b ∧ a))).<br />

(iii) Telkens als a waar wordt, dan is b na enige tijd ook waar.<br />

Oplossing: G(a → Fb). Een formule die in <strong>de</strong> buurt <strong>van</strong> <strong>de</strong>ze betekenis komt is<br />

G(a U b). Maar feitelijk is <strong>de</strong>ze twee<strong>de</strong> versie sterker in die zin dat hij eist dat a waar<br />

blijft totdat b waar is (<strong>het</strong> moment waarop b waar wordt niet meegeteld) terwijl dat<br />

gezien <strong>de</strong> zin in <strong>het</strong> Ne<strong>de</strong>rlands helemaal niet hoeft.<br />

Opgave 5.K Definieer <strong>de</strong> operator U in termen <strong>van</strong> R.<br />

Oplossing: f U g ≡ ¬(¬f R ¬g). Het bewijs hiervoor gaat alsvolgt. We weten al<br />

¬(¬f U ¬g) ≡ f R g. Maar dan ¬f U ¬g ≡ ¬(f R g). Dit geldt voor alle f en g en in<br />

<strong>het</strong> bijzon<strong>de</strong>r dus ook voor ¬f en ¬g. Dus krijgen we ¬¬f U ¬¬g ≡ ¬(¬f R ¬g). Oftewel<br />

f U g ≡ ¬(¬f R ¬g).<br />

Opgave 5.L Definieer <strong>de</strong> operator G en F in termen <strong>van</strong> U en R. Je mag hierbij <strong>de</strong> proposities<br />

⊤ en ⊥ gebruiken die respectievelijk altijd waar en altijd onwaar zijn.<br />

Oplossing: Gf ≡ ⊥ R f en Ff ≡ ⊤ U f. Be<strong>de</strong>nk bij <strong>de</strong> eerste gelijkheid dat ⊥ R f<br />

betekent dat f geldt totdat ⊥ geldt. Maar omdat ⊥ nooit geldt, zal f dus altijd moeten<br />

gel<strong>de</strong>n. Bij <strong>de</strong> twee<strong>de</strong> gelijkheid moeten we be<strong>de</strong>nken dat ⊤ U f twee dingen impliceert. Ten<br />

eerste dat f ooit een keer moet gel<strong>de</strong>n, wat dus al equivalent is aan Ff. Ten twee<strong>de</strong> wordt<br />

er <strong>de</strong> extra eis verlangd dat tot <strong>het</strong> moment dat f geldt, <strong>de</strong> propositie ⊤ waar is. Hoewel<br />

dit technisch gesproken een extra eis is, is dit in <strong>de</strong> praktijk helemaal geen extra voorwaar<strong>de</strong><br />

omdat ⊤ nu eenmaal altijd geldt.<br />

Opgave 5.M Laat zien dat je alle LTL operatoren (behalve X ) kunt <strong>de</strong>finiëren met <strong>de</strong> W<br />

operator. Je mag hierbij weer <strong>de</strong> proposities ⊤ en ⊥ gebruiken.<br />

63


Oplossing:<br />

f R g ≡ g W (f ∧ g)<br />

Gf ≡ ⊥ R f<br />

≡ f W (⊥ ∧ f)<br />

≡ f W ⊥<br />

Ff ≡ ¬G¬f<br />

≡ ¬(¬f W ⊥)<br />

f U g ≡ f W g ∧ Fg<br />

≡ f W g ∧ ¬(¬g W ⊥)<br />

Opgave 5.N Beschouw <strong>het</strong> LTL Kripke-mo<strong>de</strong>l M6 = 〈W, R, V 〉. Dus met W = {xi | i ∈ N}<br />

en xj ∈ R(xi) als i ≤ j. Definieer V nu als volgt:<br />

a ∈ V (xi) <strong>de</strong>sda i is een tweevoud<br />

b ∈ V (xi) <strong>de</strong>sda i is een drievoud<br />

Ga na of <strong>de</strong> volgen<strong>de</strong> eigenschappen gel<strong>de</strong>n:<br />

(i) x1 F(a ∧ b)<br />

Oplossing: Omdat x6 ∈ R(x1) en x6 a en x6 b, geldt x1 F(a ∧ b).<br />

(ii) x6 G(a ∨ b)<br />

Oplossing: Omdat x7 ∈ R(x6) en x7 a en x7 b, geldt x7 a ∨ b. En dus<br />

x6 G(a ∨ b).<br />

(iii) M6 GF(a U b)<br />

Oplossing: Zij xi ∈ W . We moeten laten zien wegens G dat dan voor alle j ≥ i geldt<br />

xj F(a U b). Dus laten zien wegens F dat er voor alle j ≥ i een k ≥ j is met<br />

xk a U b. Dus laten zien wegens U dat er voor alle j ≥ i een k ≥ j is en een l ≥ k<br />

zodat xl b en er voor alle m met k ≤ m < l geldt dat xm a. Merk op dat <strong>het</strong> niet<br />

<strong>uit</strong>maakt wat i is. Het gaat er om dat we voor elke j ≥ i een algoritme kunnen vin<strong>de</strong>n<br />

om <strong>de</strong> k en l te vin<strong>de</strong>n. Dat doen we door modulo 6 te gaan rekenen. Dat levert <strong>het</strong><br />

volgen<strong>de</strong> plaatje op.<br />

x 0<br />

<br />

<br />

<br />

x <br />

<br />

<br />

1 x <br />

<br />

2<br />

x <br />

<br />

3<br />

x <br />

<br />

4<br />

x5 a b <br />

<br />

a <br />

b <br />

a <br />

<br />

<br />

<br />

<br />

• j ≡6 0 (afkorting voor als j mod 6 = 0). Neem dan k = j + 2 en l = j + 3. Omdat<br />

alle m met k ≤ m < l niets an<strong>de</strong>rs is dan m = k geldt xl b en voor alle m met<br />

k ≤ m < l geldt xm a. Dus geldt xk a U b. Dus geldt xj F(a U b).<br />

64


• j ≡6 1. Neem dan k = j + 1 en l = j + 2.<br />

• j ≡6 2. Neem dan k = j en l = j + 1.<br />

• j ≡6 3. Neem dan k = j + 5 en l = j + 6.<br />

• j ≡6 4. Neem dan k = j + 4 en l = j + 5.<br />

• j ≡6 5. Neem dan k = j + 3 en l = j + 4.<br />

Opgave 5.O Welke <strong>van</strong> <strong>de</strong> axiomaschema’s <strong>uit</strong> <strong>de</strong> tabel op pagina 65 gel<strong>de</strong>n in LTL?<br />

Oplossing:<br />

• Distributief geldt want als in alle werel<strong>de</strong>n geldt dat f → g waar is en je weet dat in<br />

alle werel<strong>de</strong>n f waar is, dan moet ook in alle werel<strong>de</strong>n g waar zijn.<br />

• Reflexief geldt want G omvat ook nu.<br />

• Symmetrisch geldt niet omdat je niet terug in <strong>de</strong> tijd kunt. Stel a ∈ V (x0) en a ∈ V (xi)<br />

met i ≥ 1. In LTL geldt dat x0 ∈ R(x1) maar wel x1 ∈ R(x0). Dus hebben we x0 a<br />

maar x0 ♦a. En dus x0 a → ♦a.<br />

• Transitief geldt want als formule f <strong>van</strong>af nu in elke toestand geldt, dan geldt ook <strong>van</strong><strong>uit</strong><br />

elke toestand f.<br />

• Euclidisch geldt niet omdat je niet terug in <strong>de</strong> tijd kunt. Neem weer a ∈ V (x0) en<br />

a ∈ V (xi) met i ≥ 1. Omdat x0 ∈ R(x0) geldt x0 a. Maar omdat x0 ∈ R(x1) en wel<br />

x1 ∈ R(x0) weten we dat x1 ♦a zou moeten gel<strong>de</strong>n om x0 ♦a waar te laten zijn.<br />

Maar x1 ♦a omdat men <strong>van</strong><strong>uit</strong> x1 alleen maar in werel<strong>de</strong>n kan komen waar a niet<br />

waar is. Dus hebben we x0 ♦a maar x0 ♦a. En dus x0 ♦a → ♦a.<br />

• Serieel geldt want <strong>van</strong><strong>uit</strong> elke wereld gaan er oneindig veel pijlen.<br />

65

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!